UIScrollView AutoLayout布局

UIScrollView 的布局和其他UIView的不同的。UIScrollView 的内容contentView 的尺寸由填充视图的大小决定。

UIScrollView 添加的第一个UIView默认会作为UIScrollViewContent View ,用来撑开UIScrollView 的内容大小。

Talk is cheap. Show me the code

1.向storyboard 中拖一个UIScrollView

上下左右 布局

UIScrollView AutoLayout布局_第1张图片
1.jpeg

2.向UIScrollView中拖一个UIView作为Content View

上下左右 布局


UIScrollView AutoLayout布局_第2张图片
3A0F9D8C-3EEF-4781-92B0-170BEF4A9B4D.png

结果,爆红


UIScrollView AutoLayout布局_第3张图片
26542DCB-1F76-4954-A135-59E8681B51CC.png

View 缺失宽高。

3.给View添加宽高

UIScrollView AutoLayout布局_第4张图片
36622706-352E-4D6B-8523-BCD13EA11092.png

4.重新约束ContentView的宽高

    @IBOutlet weak var contentView: UIView!
    @IBOutlet weak var redView: UIView!
    @IBOutlet weak var widthConstraint: NSLayoutConstraint!
    @IBOutlet weak var heightConstraint: NSLayoutConstraint!

    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        widthConstraint.constant = 2 * view.bounds.size.width
        heightConstraint.constant = 2 * view.bounds.size.height
    }

滚动方向由宽高约束的大小决定。

完整代码

你可能感兴趣的:(UIScrollView AutoLayout布局)