使用 Xcode 7 beta 5 和 Swift 2 时会出现以下现象:
当使用在故事板中创建的自定义 UICollectionViewCell 时,单元格的子视图不会添加到单元格的子视图中。contentView
。因此,该单元格在运行时保持空白。
但是,如果我为单元格创建一个自定义单元格类,然后以编程方式将子视图添加到 contentView 并设置它们frame
显示单元格的内容:
class Cell : UITableViewCell {
@IBOutlet weak var label: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
NSLog("subiews.count=%d", contentView.subviews.count) // prints "0"
contentView.subviews.count
contentView.addSubview(label)
label.frame = CGRect(x: 0, y: 0, width: 200, height: 21)
}
}
同样,如果不手动添加标签(已添加到故事板中!)并设置其框架,它在运行时将不可见!在故事板中的标签is内容视图的子视图。在运行时它is not.
我无法在最新的 Xcode 6 和 Swift 1.2 中观察到这种行为。
有人可以证实这种愚蠢的行为吗?也许提供一个更简单的解决方法?
Edit:幸运的是,在以编程方式将这些视图添加到单元格的子视图上之后,就会应用视图约束contentView
。因此至少不需要手动设置它们的框架。
这里有一个类似的问题iOS 9 beta 5 更新后 UITableView 为空 https://stackoverflow.com/q/32041855/2674336
以及我的回答https://stackoverflow.com/a/32052154/2674336 https://stackoverflow.com/a/32052154/2674336
我不能说这是否是一个通用的解决方案,但在完全相同的情况下(更新到 XCode 7 beta 5 后运行时 tablviewcell 内容为空)这为我解决了这个问题:
I had to go through every single item inside the content view (including all constraints) and tick the checkbox "Installed" in the properties inspector. Initially only wR hR was checked.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)