class CategoryCell: UITableViewCell {
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
print(self.bounds.size.width);
}
override func layoutSubviews() {
print("===== layoutsub =======");
print(self.bounds.size.width);
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
init方法里和layoutSubviews方法里都有一段输出view宽度的方法,
但是在init里输出的是320, 在layoutSubviews输出的是375,
这是什么原因?
导致我再init里布局的时候右边少了50像素。。。如果在layoutSubviews里布局就是正常填满的。
在init里如何获取到真实的宽度?
init里只是初始化一个值啊,根据不同的屏幕尺寸还有动态调整要动态布局的啊。init里面你不应该布局UI,init里只创建view就好了,先不用管它显示在什么地方,在layoutSbviews里在布局,这才是标准做法。