iphone 使用Masonry之后,如何检查自己的Autolayout布局是否正确?

如题,我在tableview cell中,使用Masonry做自动布局,但是使用systemLayoutSizeFittingSize:UILayoutFittingCompressedSize 来计算的行高为0,证明我的Autolayout有错,不过我不知道怎么去检查这个?

阅读 2.9k
2 个回答

使用自动计算cell高度,需要保证cell里的view的约束最后可以撑开这个cell
也就是cell的contentView的top和bottom需要有view和它们有对应约束。
比如有2个label放在一个cell里,上下放置:

        [self.contentView addSubview:self.lblTitle];
        [self.contentView addSubview:self.lblBody];
        
        [self.lblTitle mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.left.equalTo(@20);
            make.right.equalTo(@-20);
            make.height.equalTo(@22);
        }];
        
        [self.lblBody mas_makeConstraints:^(MASConstraintMaker *make) {
            make.width.equalTo(self.lblTitle);
            make.left.equalTo(self.lblTitle);
            make.top.mas_equalTo(self.lblTitle.mas_bottom).offset(10);
            make.bottom.equalTo(@-20);
        }];

并没有可以“有效”检查约束是否正确的方法,只有自己脑补约束是否满足,能不能完全支撑这个cell。

可以参考这篇文章:self-satisfied cell

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题