【问题标题】:Can you have a subview in a subview? swift 3子视图中可以有子视图吗?迅速 3
【发布时间】:2017-07-21 21:38:00
【问题描述】:

是否可以在已经显示为子视图的 UIView 中有子视图?

在我的主视图控制器中,我有一个 UIView,它在点击的标记调用上显示为子视图。我想将进一步的子视图放入该呈现的子视图中。有可能吗?这是怎么做到的?

【问题讨论】:

  • 您的意思是要将子视图插入到地图图钉标注视图中?一张图讲一千个字。

标签: ios uiview uiviewcontroller swift3 subview


【解决方案1】:

任何UIView 类都可以有子视图。子视图不是一种对象。类型还是UIView

这是怎么做到的?

与任何其他UIView 对象完全相同。只需添加子视图。一视同仁:

let mainView = self.view
let subview = mainView.viewWithTag(42)

let newSubview = UIView(frame: CGRect(x: 0, y: 0, width: 10, height: 10))
subview?.addSubview(newSubview)

【讨论】:

  • 这个好用,只需要改一个字!我的主视图控制器中有“self.view.addSubview”,但正如你指出的那样,我应该有“self.subview.addSubview ...”。现在很有意义!
【解决方案2】:

是的,子视图可以嵌套。一个示例游乐场:

import UIKit
import PlaygroundSupport

let view_1 = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
view_1.backgroundColor = UIColor.blue

let view_2 = UIView(frame: CGRect(x: 10, y: 10, width: 100, height: 100))
view_2.backgroundColor = UIColor.red
view_1.addSubview(view_2)

let view_3 = UIView(frame: CGRect(x: 10, y: 10, width: 50, height: 50))
view_3.backgroundColor = UIColor.green
view_2.addSubview(view_3)


PlaygroundPage.current.liveView = view_1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多