[绍棠] masonry获取自动布局后的高度

masonry的自动布局

// footerView 是之前创建的View
[footerView addSubview:self.tagView];

// 自动布局 self.tagView
[self.tagView mas_makeConstraints: ^(MASConstraintMaker *make) {
    // self.tagView的获取父视图
    UIView *superView = footerView;
    // 设置宽度为父视图的宽度-50 等价于(self.tagView.frame.size.width = footerView.frame.size.width - 50);
    make.width.equalTo(superView.mas_width).with.offset(-50);
    // 设置X为父视图的X+50 等价于(self.tagView.frame.origin.x = footerView.frame.origin.x + 54;);
    make.top.equalTo(superView.mas_top).with.offset(54);
    // 左距离
    make.left.equalTo(superView.mas_left).with.offset(25);
    make.leading.equalTo(superView.mas_leading).with.offset(0);
    make.trailing.equalTo(superView.mas_trailing);
    DLog(@"___%@",@(self.tagView.height))
}];

获取自动布局后的高度

调用self.tagView父视图的 layoutIfNeeded 后可以获取高度
layoutIfNeeded
如果,有需要刷新的标记,立即调用layoutSubviews进行布局

[footerView layoutIfNeeded];     
CGFloat tagViewHeight = self.tagView.height;

也可以
  1. 所有通过masonry加载约束,可以通过 
    NSArray *installedConstraints = [MASViewConstraint installedConstraintsForView:footerView]

获得。
然后你循环遍历数组,找到你要的那个约束就好了

猜你喜欢

转载自blog.csdn.net/happyshaotang2/article/details/80407820