Pan*_*xim 21 iphone uiscrollview ios autolayout swift
我想创建只有垂直滚动的视图.事实证明,在iOs中很难做到.我已经完成了这个步骤:
1)在故事板中创建UIViewController;
2)在UIViewController中的View中添加ScrollView,并为每一侧添加0个约束.
启动我的应用程序后,所有工作,但:
1)我应该如何禁用水平滚动?我向右侧添加0约束我的scrollView + 0约束到我的uilabel右侧(因为你在屏幕上看到它没有附加到右边,它有不同的约束,但在属性我设置约束= 0)并且,正如我所想,标签文本应该在我的屏幕边界,但是当我启动应用程序时我可以向右滚动,即可用文本没有换行,我的scrollview只是调整大小以适应文本.我试图设置我的scrollView在代码:scrollView.contentSize = CGSize(UIScreen.mainScreen().bounds.width, height: 800),但没有帮助.
2)如果我滚动到很多,那么出现空白区域,这不是很酷,如何解决?
ifa*_*fau 59
1)当scrollView中的内容宽度超过scrollView的宽度时,水平滚动自动启用.因此,为了避免水平滚动,必须使scrollView内的宽度小于或等于scrollView宽度.
Leading space并且trailing space无法为视图设置特定宽度,它们只是拉伸它们.在常规视图中,它们不会超出视图宽度,但scrollView是一个特殊视图,实际上具有无限的内容宽度.因此,trailing space和leading space滚动型约束改变意见,其最大可能值宽度(如果用的UILabel,你可以看到大小以适合文本).
要避免水平滚动,您需要设置每个视图的特定宽度,小于或等于scrollView宽度.可以设置特定的视图宽度width constraints.
而不是设置每个视图宽度,更好的是添加视图容器并为其设置宽度,并在其内部根据需要放置视图.
视图层次结构
View
-> ScrollView
-> ContainerView
-> UILabel
-> UILabel
-> ... other views that you need
Run Code Online (Sandbox Code Playgroud)
Autolayout约束:
ScrollView
-> leading space to View : 0
-> trailing space to View : 0
-> top space to View : 0
-> bottom space to View : 0
Container View
-> leading space to ScrollView : 0
-> trailing space to ScrollView : 0
-> top space to ScrollView : 0
-> bottom space to ScrollView : 0
-> width equal to ScrollView : 0
Run Code Online (Sandbox Code Playgroud)
设置width equal constraintctrl +拖动containerView到scrollView.
2)垂直滚动取决于内容的总高度.如果内部的最后一个元素containerView具有较大的值,则可以是空格bottom space to superview.
或者你的意思是弹跳效果?您可以禁用scrollView的垂直反弹.
| 归档时间: |
|
| 查看次数: |
24523 次 |
| 最近记录: |