IOS scrollView和autolayout的约束问题


想用StoryBoard开发个ipad和iphone通用的APP,有个scrollView滚动显示图片,我自己用autoLayout约束的ScrollView有各种问题,所以请教下大家要怎样去约束scrollView

谢谢大家的帮忙和思路,我现在已经弄得差不多了,现在遇到了一个问题,就是我没有加导航控制器的时候是完全没问题了的 图片描述

但是加了导航条以后就会出现这样的情况,红色那块是滚动视图的颜色 图片描述
重新约束也一样会有红色的那块存在,求解

问题解决,加了一句self.automaticallyAdjustsScrollViewInsets = NO;就可以了

ios uiscrollview autolayout

txhhkd 10 years, 2 months ago

整过。。。 直接上图
说明:
滚动栏是ScrollView
内容视图是UIView
其他UIImageView

技巧楼上貌似说了 加一个 dummyView。。。 对应的是内容视图

图层关系

图片描述

父亲、兄弟视图约束

图片描述

儿子视图约束

图片描述

超过1屏的图片2约束展示

图片描述

看了下好像有多余的约束。。自己改下咯

你这是算两个问题吧。。。问题二的原因是 因为加了导航栏。。ScrollView及其子类都有的问题。。
解决方案:
就是你可以打印下scrollView.contentInset.top
以及打印下scrollView.contentInset.bottom;
你就动啥原因了。。。

zhaoren answered 10 years, 2 months ago

图片描述

秘诀在于在ScrollView上加一个UIView,然后在UIView上添加你想要的内容

图片描述

然后最关键的地方在于使该UIView的width(如果要左右划动就是height)和Viewcontroller的背景View的width相等。

⑧个鸭鹿ㄨ挡 answered 10 years, 2 months ago

首先说明以下,对于scrollview的约束不简单,尤其在scrollview里面再放东西,我个人只做过简单的scrollview。
之前在看autolayout的时候遇到很多专门的帖子来叙述scrollview的约束,当时觉得复杂就没有收藏连接...不能转给你了。

大概说一下我现在对于scrollview的处理方法。

1.如果是采用可视化界面的开发(我们用的是xib,storyboard类似),我会在scrollview里放我的控件,然后选择全部的控件,选择“添加建议的约束”(手上暂时没有mac电脑下午补一张截图)。这样的话在大部分情况都是可以完成自适应的。
2.因为有的时候这种自动布局的方式不能很好的适应(也有可能是我约束设置的不好)。这种情况下我会采用纯代码的方式来布局整个scrollview,这样对于scrollview里的内容我可以很好的根据屏幕来适应。
3.题主说到是用scrollview滚动显示图片,如果是多张的话,可以使用uitableview。对于tableview本身,是可以很好的利用autolayout来自适应的。
以上,如果还有什么问题可以留言给我。

saccyan answered 10 years, 2 months ago

Your Answer