我想知道有关UIView的信息,并添加子视图...
所以说我这样将一个子视图添加到baseLayerView中:
self.newBaseLayer.addSubview(self.usernameLabel)
如果我错了,UIView层次结构/结构将纠正我,就像这样:
newBaseLayer
- self.usernameLabel
然后在代码后面,我添加另一个子视图:
self.newBaseLayer.addSubview(self.dateLabel)
最后我再次添加用户名标签:
self.newBaseLayer.addSubview(self.usernameLabel)
usernameLabel将重复或替换为另一个:
newBaseLayer
- self.usernameLabel
- self.dateLabel
- self.usernameLabel
或
newBaseLayer
- self.dateLabel
- self.usernameLabel
答案 0 :(得分:4)
我想我们在谈论的是UIView,而不是此处的Layers !!
在这种情况下,即使多次调用addSubview,usernameLabel也只会添加一次。
为避免歧义,请在此处添加一些代码:
let baseView = UIView()
let dateLabel = UILabel()
let usernameLabel = UILabel()
override func viewDidLoad() {
super.viewDidLoad()
baseView.tag = 1
usernameLabel.tag = 2
dateLabel.tag = 3
self.view.addSubview(self.baseView)
self.baseView.addSubview(self.usernameLabel)
self.baseView.addSubview(self.dateLabel)
self.baseView.addSubview(self.usernameLabel)
self.traverseViewHierarchy(view: self.baseView, level: 0)
}
private func traverseViewHierarchy(view: UIView, level: Int) {
for _ in 0...level {
print (" | ", terminator: "")
}
print ("view: \(view.tag)")
for view in view.subviews {
self.traverseViewHierarchy(view: view, level: level + 1)
}
}
这会在提及视图中添加一些标签,并在控制台中显示出来:
| view: 1
| | view: 3
| | view: 2
如您所见,usernameLabel仅添加到视图层次结构一次。