美文网首页iOS开发知识小集
iOS计算通过约束布局的view高度

iOS计算通过约束布局的view高度

作者: 码农老王 | 来源:发表于2018-08-08 10:55 被阅读61次

    在一些场景我们需要自行计算高度的场景, 比如tableheaderview, 如果用约束布局, 那么用以下方法计算即可, view的细节跟动态布局的cell和scrollview一样, 约束必须明确每个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;
    }

    相关文章

      网友评论

        本文标题:iOS计算通过约束布局的view高度

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