如何使uiscrollview只为ios垂直滚动?

时间:2015-05-27 13:01:10

标签: ios objective-c ios8 uiscrollview autolayout

我尝试使用这一个教程https://www.youtube.com/watch?v=UnQsFlMGDsI layoutscrollviewangular.module('starter.controllers', []) .controller('MainCtrl', function($scope, $firebaseArray) { var ref = new Firebase("https://list-detail-001.firebaseio.com/users"); $scope.users = $firebaseArray(ref); $scope.add=function(){ $scope.users.$add({ text: $scope.newUser }); } });

获得以下结果 http://youtu.be/iPfzyLbEZMA

任何建议或教程链接都将受到赞赏。它只需要垂直滚动

9 个答案:

答案 0 :(得分:10)

我确信必须有其他方法可以做到这一点,但快速解决方法是:

1。)在Storyborad中的ContentView上创建宽度约束。

2.。)IBOutlet表示widthContraint并将其值设置为viewDidLoad中的视图框宽度。

假设约束出口的名称是contentViewWidthContraint。

contentViewWidthContraint.constant = self.view.bounds.size.width;

从Storyboard执行此操作的另一种方法是,如果Scrollview已经与superview具有Equal宽度约束,则将Contentview宽度从故事板或Scrollview固定到视图的宽度。将Contentview中的“Equal Width”约束添加到self.view或Scrollview(如果scrollview已经有宽度约束)

答案 1 :(得分:8)

您是否设置了“ContentView”宽度以匹配滚动视图宽度?我遇到了同样的问题,我修复了“等宽”。

等宽”会告诉您的“ContentView”使用相同宽度的“滚动视图”,如果您已正确设置约束,则应适合屏幕。

您可以在故事板上轻松完成此操作。

  1. 拖放,右键单击(重要!!!),从“ContentView”拖放到“ScrollView”
  2. 释放点击,系统会提示您选择“等宽”。

    Prompted menu

  3. 这应该可以通过Storyboard编辑器中的AutoLayout使用scrollview来解决您的问题。

    您可以在Autolayout和Storyboard here中找到有关如何使用ScrollView的完整教程。

    我希望这对你有用:)

答案 2 :(得分:3)

在Storyboard中,UIScrollView中包含的元素的宽度等于此UIScrollView的宽度(通过选择Storyboard左侧面板中的所有元素和UIScrollView,然后设置' Equal在故事板底部的' Pin'下的宽度和约束条件。只需将元素的右侧固定到UIScrollView的右侧就不会起作用,因为它会调整其显示视图的大小"到最大元素的宽度,如果它小于UIScrollView的宽度,则所有元素都将显示为与其左侧对齐。

答案 3 :(得分:3)

另一种可能性提供了非常好的结果。

您可以标记一个复选框:

enter image description here

O以编程方式:

scrollView.alwaysBounceVertical = true

答案 4 :(得分:0)

设置UIScrollView约束,如下面的代码所示它将占用整个屏幕。不超过屏幕尺寸。

Leading Space = 0 from mainView
Top Space = 0 from mainView
Bottom Space = 0 from mainView 
Trailing Space = 0 from mainView

答案 5 :(得分:0)

您需要将UIScrollView的宽度设置为等于或小于父视图的宽度。有两种方法可以做到:

1)您可以通过布局约束

在Storyboard中执行此操作

2)您可以以编程方式执行此操作:

self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, self.scrollView.contentSize.height);

答案 6 :(得分:0)

尝试将其宽度设置为0&高度等于内容大小,如下所示:

self.scrollView.contentSize = CGSizeMake(0, self.scrollView.contentSize.height);

这将按您的意愿工作。尝试一下&告诉我是否还有任何问题。

答案 7 :(得分:0)

要禁用水平滚动,您可以使用[self.scrollView setContentOffset: CGPointMake(0, self.scrollView.contentOffset.y)]; self.scrollView.directionalLockEnabled = YES; 方法设置内容大小。

Sources > Event Listener Breakpoints > Mouse > click

答案 8 :(得分:0)

这是因为滚动视图不知道您的内容应该在哪里结束。

但是当滚动视图中的至少一个项目的“尾随空格”约束附加到滚动视图外部的视图时(通常是滚动视图所在的视图或更高级别的其他视图,“知道” “它的宽度” - 滚动视图将自动了解您想要的宽度,并且不会水平滚动(除非尾随约束意味着您的内容在屏幕外)。

如果滚动视图中的所有项目的“尾随空格”约束彼此连接或连接到滚动视图外部的视图,则更好。但不是滚动视图本身。

无需额外的代码或额外的约束。