美文网首页程序员
Xib 约束 UIScrollerView

Xib 约束 UIScrollerView

作者: 小希嘻 | 来源:发表于2017-12-26 16:27 被阅读43次

    1、在使用xib定制界面时,我们经常会用到AutoLayout自动布局,或者不用AutoLayout,自己在xib属性的地方进行约束

    2、xib中,ScrollView的自动约束并不像我们平常约束其他view一样,由于ScrollView的滚动范围是由有属性ContentSize决定的,所以在xib中使用AutoLayout约束的时候会相对复杂一下。
    3、在xib中拖动一个scrollerView到xib中,scrollerView直接在View下面,界面结构如下:
    4、对srollerView进行约束,并更新位置


    Snip20171226_3.png

    5、添加View 发现有个小红点报错;


    Snip20171226_4.png

    6、点击小红点进入;


    Snip20171226_5.png

    7、给View添加约束;


    Snip20171226_6.png

    8、添加完VIew后,发现还是会报错;

    image

    9、这步骤很重要,如果scrollerView要垂直滚动,这时要给view添加一个垂直约束;如果scrollerView要水平滚动,这时要给view添加一个水平约束;


    image

    10、添加完后发现还是会报错


    image

    11、 然后我们再选中View,添加height约束,这里约束的是600;


    Snip20171226_7.png

    12、这时就可以正常使用了;

    13、如果要在控制器中动态的设置scrollerView的contentSize 可以将VIew的高度拉线设置成属性,然后就可以在控制器中设置scrollerView的垂直滚动范围了;

    @property (weak, nonatomic) IBOutlet NSLayoutConstraint *scrollerViewContentHeight; // 属性设置
    

    注意:在计算滚动范围之后立即根据某一个控件设置constant时,有的时候不起作用,这是因为界面只是加载了控件和计算出了范围,并没有刷新界面,某些控件的高度还没有被调整,这里建议在一个方法中写 就好了;

    - (void)viewDidLayoutSubviews{
       [super viewDidLayoutSubviews];
    
       self.scrollerViewHeight.constant = CGRectGetMaxY(self.sendMessageButton.frame) + 150;
    }
    

    相关文章

      网友评论

        本文标题:Xib 约束 UIScrollerView

        本文链接:https://www.haomeiwen.com/subject/budjgxtx.html