【发布时间】:2017-04-10 14:10:28
【问题描述】:
使用 self.bounds.size.width 懒惰地实例化 UILabel 会引发错误。
lazy public var nameLabel = {
return UILabel (frame: CGRect(10, 0, self.bounds.size.width, 40))
}
错误提示:Value of type '(NSObject) -> () -> TableViewCell' has no member width。
就 UITableViewCell 的编程视图而言,self.bounds.size.width 有什么替代品?
【问题讨论】:
-
当你在变量的初始化中引用 self 时,你是在引用变量本身,所以你试图访问它尚未初始化的东西。如果你想用屏幕的宽度初始化你必须调用
UIScreen.mainScreen().bounds.size.width -
单元格不应采用
mainScreen()的宽度,因为UITableView的实例可能小于UIScreen.mainScreen().bounds.size.width。有没有办法延迟初始化UITableViewCell的实例? -
谢谢@AitorPagán!你帮了我。
标签: ios swift uitableview cgrect