Xcode 7 beta 5,Swift 2:UITableViewCell 的子视图不会在运行时添加到 contentView
Xcode 7 beta 5, Swift 2: UITableViewCell's subviews are not added to the contentView at runtime
使用Xcode 7 beta 5和Swift 2时会出现以下现象:
使用在故事板中创建的自定义 UICollectionViewCell 时,单元格的子视图不会添加到单元格的 contentView
。因此单元格在 运行 时间保持空白。
但是,如果我为单元格创建一个自定义单元格 class,然后以编程方式将子视图添加到 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)
}
}
同样,如果不手动添加标签(已添加到情节提要中!)并设置其框架,它在 运行 时将不可见!在故事板中,标签 是 内容视图的子视图。在 运行 的时候 不是 .
我无法在最新的 Xcode 6 和 Swift 1.2 中观察到这种行为。
有人可以证实这种愚蠢的行为吗?也许提供更简单的解决方法?
编辑:
幸运的是,在以编程方式将这些视图添加到 contentView
之后,应用了对单元格子视图的视图约束。因此至少不需要手动设置它们的框架。
这里有一个类似的问题
还有我的回答
我不能说这是否是一个通用解决方案,但在完全相同的情况下(更新到 XCode 7 beta 5 后 tablviewcell 内容在运行时为空)这为我解决了:
我必须检查内容视图中的每个项目(包括所有约束)并勾选属性检查器中的复选框 "Installed"。最初只检查 wR hR。
使用Xcode 7 beta 5和Swift 2时会出现以下现象:
使用在故事板中创建的自定义 UICollectionViewCell 时,单元格的子视图不会添加到单元格的 contentView
。因此单元格在 运行 时间保持空白。
但是,如果我为单元格创建一个自定义单元格 class,然后以编程方式将子视图添加到 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)
}
}
同样,如果不手动添加标签(已添加到情节提要中!)并设置其框架,它在 运行 时将不可见!在故事板中,标签 是 内容视图的子视图。在 运行 的时候 不是 .
我无法在最新的 Xcode 6 和 Swift 1.2 中观察到这种行为。
有人可以证实这种愚蠢的行为吗?也许提供更简单的解决方法?
编辑:
幸运的是,在以编程方式将这些视图添加到 contentView
之后,应用了对单元格子视图的视图约束。因此至少不需要手动设置它们的框架。
这里有一个类似的问题
还有我的回答
我不能说这是否是一个通用解决方案,但在完全相同的情况下(更新到 XCode 7 beta 5 后 tablviewcell 内容在运行时为空)这为我解决了:
我必须检查内容视图中的每个项目(包括所有约束)并勾选属性检查器中的复选框 "Installed"。最初只检查 wR hR。