在使用 Xcode 7 beta 5 和 Swift 2 时出现如下现象:
当使用在 Storyboard中创建的自定义 UICollectionViewCell 时,单元格的 subview 不会添加到单元格的 contentView。因此单元格在运行时保持空白。
但是,如果我为单元格创建自定义单元格类,然后以编程方式将 subview 添加到 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)
}
}
同样,如果不手动添加标签(已添加到 Storyboard 中!)并设置其框架,它将在运行时不可见!在 Storyboard中,标签是内容 View 的 subview 。在运行时它不是。
我无法在带有 Swift 1.2 的最新 Xcode 6 中观察到这种行为。
有人可以证实这种愚蠢的行为吗?也许提供更简单的解决方法?
编辑:
幸运的是,在以编程方式将这些 View 添加到 contentView 之后,应用了对单元格 subview 的 View 约束。因此至少不需要手动设置它们的框架。
最佳答案
这里也有类似的问题UITableView Empty with iOS 9 beta 5 update
我的答案https://stackoverflow.com/a/32052154/2674336
我不能说这是否是一个通用解决方案,但在完全相同的情况下(更新到 XCode 7 beta 5 后 tablviewcell 内容在运行时为空)这为我解决了:
关于ios - Xcode 7 测试版 5,Swift 2 : UITableViewCell's subviews are not added to the contentView at runtime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32027137/