美文网首页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