iOS开发——使用基于Autolayout的ScrollView
2015-05-02 10:40
218 查看
问题描述:
在使用Autolayout布局方式对ScrollView进行布局时,如果你想做一个可以垂直方向滚动的九宫格类似这样:
拿一行来说,一定不要想当然的尝试去给一行图标进行均匀排列的操作(指定padding,图片尺寸自适应),你的针对ScrollView右边和下边的约束是无效的。约束了结果也是没用的,然后图片的内在尺寸约束会占据主导,把ScrollView水平方向也顶出屏幕,使得ScrollView水平方向变得也可以滚动。
解决方法:
解决办法是不能在ScrollView中使用Autolayout进行图片尺寸自适应的操作,在指定padding的前提下,我们是可以得到屏幕宽度的,进而计算出n列情况下每张图片的尺寸,进而直接用约束制定每张图片的尺寸,图片就会排列正常。
参考来源:
在使用Autolayout布局方式对ScrollView进行布局时,如果你想做一个可以垂直方向滚动的九宫格类似这样:
拿一行来说,一定不要想当然的尝试去给一行图标进行均匀排列的操作(指定padding,图片尺寸自适应),你的针对ScrollView右边和下边的约束是无效的。约束了结果也是没用的,然后图片的内在尺寸约束会占据主导,把ScrollView水平方向也顶出屏幕,使得ScrollView水平方向变得也可以滚动。
解决方法:
解决办法是不能在ScrollView中使用Autolayout进行图片尺寸自适应的操作,在指定padding的前提下,我们是可以得到屏幕宽度的,进而计算出n列情况下每张图片的尺寸,进而直接用约束制定每张图片的尺寸,图片就会排列正常。
参考来源:
具体而言就是要确定content view和scroll view的top, bottom, leading和trailing contstraints,这个地方可能比较具有迷惑性,原因是苹果对于这四个约束的使用在scroll view中做了变化:它不再是确定content view尺寸的依据,而是帮助scroll view中content view四周的边界(or你可以理解为留白),进而确定scroll view的contentSize属性。
from: Xcode6中如何对scrollview进行自动布局(autolayout) 我们知道,UIScrollView 有一个 contentSize 属性,其定义了 ScrollView 可滚动内容的大小。在以前用纯代码写的时候,我们会直接对这个属性赋值,定义其大小。但在 Autolayout 下,UIScrollView 的 contentSize 是由其内容的约束来定义的。因此,我们在 ScrollView 里面设置的约束,不仅起到布局内容的作用,同时也起到了定义 ScrollView 可滚动范围的作用。
from: ScrollView 与 Autolayout
相关文章推荐
- iOS开发——使用Autolayout弹出键盘
- iOS开发技巧——Autolayout动画
- iOS:iOS8开发storyboard中autolayout和size class的使用详解 (2)
- iOS开发中使用AutoLayout进行不同屏幕尺寸匹配
- iOS:iOS8开发(二)~storyboard中autolayout和size class的使用详解
- iOS开发笔记--使用Auto Layout中的VFL(Visual format language)--代码实现自动布局
- iOS开发笔记--使用Auto Layout中的VFL(Visual format language)--代码实现自动布局
- iOS开发>学无止境 - AutoLayout 实现固定宽度动态高度的 ScrollView
- iOS开发笔记--使用Auto Layout中的VFL(Visual format language)--代码实现自动布局
- 【iOS开发-120】在storyboard中如何使用Size Classes,其实就是设置多套AutoLayout
- iOS开发笔记--使用Auto Layout中的VFL(Visual format language)--代码实现自动布局
- iOS开发~UI布局(二)storyboard中autolayout和size class的使用详解
- iOS开发笔记--使用Auto Layout中的VFL(Visual format language)--代码实现自动布局
- ios开发autolayout之代码实现Autolayout使用总结
- ios开发autolayout之Masonry使用总结
- [置顶] 【iOS开发】Mansory自动布局(autolayout)使用教程
- IOS开发之读取使用AutoLayout约束的控件Frame
- (iOS开发)AutoLayOut中等比例设置视图
- iOS8开发~UI布局(二)storyboard中autolayout和size class的使用详解
- 基于 Hybrid App(混合模式移动应用)中IOS开发证书创建和打包使用