在IOS的界面開發中,布局方式存在分裂的兩種局面,
早入行的iOS開發者,基本上都是手動計算各種高度,但是從web或者Android轉過去的學習iOS的開發者,基本上都很難適應這種手動計算的方式,更加偏向使用autolayout去做布局,
實際上 iPhone6之后,iOS設備出現多種解析度之后,蘋果也推薦大家使用autolayout去寫界面,
看了幾本iOS的書籍,基本的都是直接設定一個固定的contentSize給UIScrollView就完事了,也不考慮高度不固定的情況,
網上搜索了一堆,也沒看到一個正常一點的例子,
切入主題
思路:創建一個UIScrollView,然后直接把子View的下邊的約束依賴到UIScollView的底部,
然后就ok了
上代碼
// 1
var scrollView : UIScrollView = {
let v = UIScrollView(frame: .zero)
v.backgroundColor = UIColor.systemGray
return v;
}();
// 2.
self.view.addSubview(scrollView)
// 3.設定UIScrollView的默認寬高約束
scrollView.snp.makeConstraints { make in
make.leading.equalTo(view.safeAreaLayoutGuide.snp.leading)
make.top.equalTo(view.safeAreaLayoutGuide.snp.top)
make.trailing.equalTo(view.safeAreaLayoutGuide.snp.trailing)
make.bottom.equalTo(view.safeAreaLayoutGuide.snp.bottom)
}
// 4. 創建子View
let v = UIView();
v.backgroundColor = UIColor.systemCyan
scrollView.addSubview(v)
v.snp.makeConstraints { make in
make.width.equalTo(200)
make.height.equalTo(3000)
make.leading.equalToSuperview()
make.top.equalToSuperview()
make.bottom.equalTo(scrollView.snp.bottom) // 重點就是這一句,讓子View的bottom依賴到UIScrollView的bottom,就可以直接滾動了
}
參考
https://stackoverflow.com/questions/48216808/programmatic-uiscrollview-with-autolayout
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/548995.html
標籤:其他
上一篇:IOS使用AutoLayout讓UIScrollView自動計算ContentSize
下一篇:集成華為運動健康服務干貨總覽