iOS8 ScrollView Autolayout 怎么设置?要能滚动

2015-07-13 20:52:58 +08:00
 zioc
当前的做法是:View里面放ScrollView,ScrollView里面放一个ContainerView(UIView),ScrollView贴4边,ContainerView贴ScrollView 4边,ContainerView宽高等于View。

当前的问题是:如果ContainerView里面还有其他View,则不能正常滚动

谢谢!
3900 次点击
所在节点    iDev
13 条回复
sablib
2015-07-13 22:56:02 +08:00
ContainerView宽高不应该等于View吧,它的宽高要看你想ScrollView怎么滑,
如果想ScrollView只能上下滑,那就ContainerView宽等于View,只能左右滑的话就高等于View。
都能滑的话ContainerView的宽高当然要大于View,因为自动布局之后Container的大小就是ScrollView的contentSize。
simpleapples
2015-07-14 09:01:23 +08:00
uiscrollview设置autolayout相对麻烦一些,推荐看下这篇文章:
http://natashatherobot.com/ios-autolayout-scrollview/
CommandZi
2015-07-14 09:38:30 +08:00
前些天我也研究了一下,<http://chn-lyzhi.github.io/jekyll/update/2015/07/13/iOS%20开发-UIScrollView%20+%20Auto%20Layout%20+%20Size%20Classes.html>
我们可以一起探讨下。问题可能是ScrollView无法确定ContentSize
ashamp
2015-07-14 09:39:19 +08:00
1.scrollView与scrollView的superview的约束关系用来确定scrollView的frame

2.scrollView中的『contentView』的约束关系用来确定scrollView的contentInsets

3.contentView的宽度和高度用来确定scrollView的contentSize
CommandZi
2015-07-14 09:40:17 +08:00
请教正确的回帖方式~
bawn
2015-07-14 10:00:50 +08:00
yfmir
2015-07-14 10:17:43 +08:00
4楼 正解
抱着 ‘我要怎样才能让scrollView知道我所需要的contentSize’ 这个想法去创建约束值就好了

不过如果要兼容低版本系统活着低配置机型的话,不太建议使用autolayout来计算contentSize,特别是复杂的布局
zioc
2015-07-14 10:22:40 +08:00
@ashamp
@yfmir
contentView的高度怎么设置?需求是只垂直向滑动
ashamp
2015-07-14 10:32:20 +08:00
@zioc
1.约束contentView的宽度与scrollView相等
2.约束contentView的高度为你所需要的高度
之后contentView就相当于一个"画布",你的UI都可以在这里布局了
zioc
2015-07-14 11:39:31 +08:00
@ashamp

ContentView只设置Width和Height? 要设置贴边吗?
krafttuc
2015-07-16 19:30:11 +08:00
huanglexus
2015-07-17 11:22:02 +08:00
我觉得 scrollview 内部直接用frame更简单,用autolayout简直就是自讨苦吃
EggmanQ
2015-07-20 21:43:49 +08:00
嗯。。。刚解决这个问题。。。
说说解决方法吧,原理楼上有了。

我的情况是,一个 table 一个 collection 在同一个 view,view需要有拖动手势来切换,所以我用 scrollview 来包起它们了。

然后用一个 外部‘参照View’ 来作为 content 的参照,‘参照view’的 autolayout 设置跟 scrollview (上左下右)一样。

然后 重点就是,table 和 collection 的 autolayout 除了要确定边界之外,还需要通过 ‘参照view’ 来确定 width 和 height,从而让 scrollview 知道 content size,所以 table 和 collection 最后还需要添加 width 和 height 两个约束。

最后三个 subview 都能正常工作了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/205446

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX