Masonry 布局 scrollView


原理
scrollView的高度(縱向滑動時)時靠內部的子控件撐起來的。我們直接給ScrollView布局會發現失敗。用層級檢查器發現,ScrollVIiw的高度有問題,我們可以選擇添加一個UIView容器,約束容器的edge.equalTo(self.scrollView),和 containerView.height.mas_equalTo(self.scrollView);
往這個容器中添加控件,所有子空間相對於容器布局。
最后一個控件不要忘記 添加一個 和 容器底部的約束。否則 容器的高度是0, 里面所有的控件都無法響應手勢了。因為 容器的size為0時,手勢做坐標轉換時響應鏈到達控制器時不是原來的期望的坐標了。
而且高度為0 的控件本來就是不因該存在的。

//
[self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
    make.top.equalTo(self.view).offset(kNaviHeight);
    make.left.right.bottom.equalTo(self.view);
    make.width.mas_equalTo(kScreenW);
    make.height.mas_equalTo(kScreenH -(kNavHeight);
}];

//容器
[self.scrollView addSubview:self.conatinerView];
[self.conatinerView mas_makeConstraints:^(MASConstraintMaker *make) {
    make.edges.equalTo(self.scrollView);
    make.width.equalTo(self.scrollView);
}];

[self.subView mas_makeConstraints:^(MASConstraintMaker *make) {
    make.top.equalTo(self.someChildView.mas_bottom);
    make.left.right.equalTo(self.conatinerView);//左右約束
    make.height.mas_equalTo(kOneLineItemHeight);
    make.bottom.equalTo(self.conatinerView);//這個不能忘記
}];


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM