使用autoLayout布局ScrollView(内嵌多个TableView)的一些小结

实习离职在宿舍,当然也不能闲着,把一些常用的、自己还不太熟悉的东西搞一搞。

首先注意ScrollView的自动布局是特殊的,不仅需要drag一些约束来确定其自身的位置,大小(x, y, width, height),还需要在storyboard中确定其ContentSize的大小。

通常来讲

1.ScrollView没有固定的高度、宽度。一般都是与SuperView发生联系(eg:距离父控件上下左右均为零)

2.ScrollView中内容较多时,为了简化布局,采用化整为零的做法,将原本ScrollView中的多个子View放到一个ContentView(UIView)中,让这个ContentView独自应对外界(ScrollView)的变化,ContentView内部的子View只需要实现普通的约束即可(eg:本例中实现的是左右滑动切换至不同的TableView,共三个TableView)

3.在具体设置ContentView与其父控件ScrollView的约束时,特别需要注意的是,Content View的Width、Height千万不要与ScrollView发生关系(eg:与ScrollView等高、等宽),通常的做法是在无关的外部找一个参照物,让ContentView与其发生Width、Height上的联系。

3.5本例中,contentView需要包含三个水平方向连续的TableView,因此其宽度为屏幕宽度的三倍。在外部找到一个与屏幕等宽的anchor View,设置如下:

Proportional Width t anchor View (MUtiplier 设置为3)

意思是contentView的宽度等于anchor View的三倍,如果发现contentView变成屏幕宽度的0.3了,切换下双方的约束先后位置试试

4.对于第三点,还是想强调一下,由于自动布局需要确定ScrollView的ContentSize,所以Content View的高宽一定要是独立于ScrollView存在的,这样才能正确确定ScrollView的Content Size,否则两者的约束之间互相依赖,就无法正确确定其ContentSize

5.如果TableView的顶部总是多出一块区域,上下滑动一下又没了,这样试试:

self.automaticallyAdjustsScrollViewInsets = NO;

6.特别关注ScrollView的Bounces、Bounce Vertically、Bounce Horizontally这三个属性,在ScrollView中嵌套TableView的过程中,你可能会遇到这些家伙带来的麻烦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值