ios根据约束计算行高

来源:互联网 发布:手机探测仪软件 编辑:程序博客网 时间:2024/06/10 11:01

使用场景

有时候我们给一个View设置好底部自适应的约束后,并且在cell的header中,headerView的高度是由数据源方法决定的。所以我们必须在返回高度的这个方法里面,得到headerView的高度

代码如下

/// 传入你要计算的View的行高-(CGFloat)contentViewFittingSize:(UIView*)contentView{    // 获得父容器的宽度,我这里是获取控制器View的宽度    CGFloat contentViewWidth = CGRectGetWidth(self.view.frame);    // 新建一个宽度约束    NSLayoutConstraint *widthFenceConstraint = [NSLayoutConstraint constraintWithItem:contentView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:contentViewWidth];    // 添加宽度约束   [contentView addConstraint:widthFenceConstraint];   // 获取约束后的size   CGSize fittingSize = [contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];   // 记得移除   [contentView removeConstraint:widthFenceConstraint];      return fittingSize.height;}

步骤

一、View的约束高度要自适应

二、添加一个宽度约束

三、调用systemLayoutSizeFittingSize

0 0
原创粉丝点击