你可以在子视图中有一个子视图吗? swift 3

问题描述:

是否有可能在已经显示为子视图的UIView中有子视图?你可以在子视图中有一个子视图吗? swift 3

在我的主视图控制器中,我有一个UIView,它显示为点击标记调用的子视图。我想把一个子视图放到子视图中。这是可能的吗?这是如何完成的?

+1

你的意思是你想插入子视图到地图引脚标注视图?一张图片讲述了千言万语。 – Zhang

任何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) 
+0

这是如此有用,只需更改一个词!我在我的主视图控制器中有'self.view.addSubview',但正如你所指出的,我应该有'self.subview.addSubview ...'。它现在非常有意义! –

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

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