ios – 使用autolayout禁用UIScrollView中的水平滚动

前端之家收集整理的这篇文章主要介绍了ios – 使用autolayout禁用UIScrollView中的水平滚动前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想创建只有垂直滚动的视图.事实证明,在国际组织中很难做到这一点.我已经做了这些步骤:

1)在故事板中创建UIViewController;

2)在UIViewController的View视图中添加ScrollView,并在每一边添加0个约束.

3)在scrollview中添加元素,结果如下:

在我启动我的应用程序全部作品之后,但是:

1)如何禁用水平滚动?我向右边添加0约束到我的scrollView 0约束到我的uilabel的右边(因为你看到屏幕上的一些原因,它没有附加到右边,它有不同的约束,但在属性我设置约束= 0)和,我想,标签文本应该在我的屏幕边界,但是当我启动应用程序,我可以滚动到右边,即uilable文本没有包装,我的scrollview只是调整大小以适应文本.我试图设置我的scrollView在代码:scrollView.contentSize = CGSize(UIScreen.mainScreen().bounds.width,height:800),但没有帮助.

2)如果我滚动很多,空格出现,这不是很酷,怎么解决

解决方法

1)当scrollView中的内容宽度大于scrollView的宽度时,水平滚动将自动启用.因此,为了避免水平滚动,需要使scrollView内容的宽度小于或等于scrollView宽度.

领先空间和尾随空间无法设置特定的视图宽度,它们只是拉伸它们.在常规视图中,它们不会超过视图的宽度,但scrollView是一个特殊视图,实际上具有无限的内容宽度.因此,scrollView中的尾随空格和前导空间约束将视图的宽度更改为其最大可能值(如果使用UILabel,则可以看到调整大小以适应文本).

为了避免水平滚动,您需要设置每个视图的特定宽度,小于或等于scrollView宽度.视图的具体宽度可以用宽度约束设置.

而不是设置每个视图宽度,更好地添加一个视图容器和设置宽度,并在其内部根据需要放置视图.

视图层次结构

View
    -> ScrollView
        -> ContainerView
            -> UILabel
            -> UILabel
            -> ... other views that you need

自动布局限制:

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

设置宽度等于约束ctrl从容器视图拖动到scrollView.

2)垂直滚动取决于内容的总高度.如果containerView中的最后一个元素具有超大的底层空间值,空格就可以了.

还是你的意思是反弹效果?您可以禁用scrollView的垂直反弹.

猜你在找的iOS相关文章