美文网首页
xib中的frame

xib中的frame

作者: leimeimei | 来源:发表于2018-11-22 21:10 被阅读24次

使用XIB自定义cell,并且使用了Masonry,所以在awakeFromNib 方法中是拿不到正确的frame的。拿到的是xib中初始设置的大小。机智的我,把设置方法写到了layoutSubviews中。果然还是不正确。

layoutSubviews的调用时机:

  • addsubview方法,会触发父view和子view的layoutSubviews方法;
  • 设置了不同的frame,会触发;
  • scrollview滑动的时候,触发scrollview及子view的layoutSubviews方法;
  • 设备旋转,触发vc的layoutsubviews;
  • removeFromSuperView,会触发父view的layoutsubviews。

为了在layoutSubviews中拿到正确的frame,要强制让cell布局一次,同事给的方法是在layoutSubviews中强制cell更新。暂时未发现异常。

- (void)layoutSubviews {
    [super layoutSubviews];
    [self.contentView setNeedsLayout];
    [self.contentView layoutIfNeeded];
    // your code here
    // ...
}

如果你看到此文,如果你有更好方法,请留言,谢谢。

相关文章

网友评论

      本文标题:xib中的frame

      本文链接:https://www.haomeiwen.com/subject/jlurqqtx.html