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;
也可以
所有通过masonry加载约束,可以通过
NSArray *installedConstraints = [MASViewConstraint installedConstraintsForView:footerView]
然后你循环遍历数组,找到你要的那个约束就好了