UIScrollView 不工作(不能滚动)

Posted

技术标签:

【中文标题】UIScrollView 不工作(不能滚动)【英文标题】:UIScrollView isn't working (can't scroll) 【发布时间】:2013-11-23 17:44:40 【问题描述】:

我正在将 UIScrollView 添加到我正在制作的可重用视图中,然后将该可重用视图添加到 UIViewController。

在我的可重用视图中,我将 UIViews 添加到 UIScrollView :

 int yLocation = 20;
    for (int i= 0 ; i < 5; i++) 
        UIView *tempView = [[offerCell alloc]initWithDelegate:self];
        tempView.frame = CGRectMake(5, yLocation, 290.0F, 70.0F);

        yLocation += 90;

        [self.scrollView addSubview:tempView];
        UILabel *tempLabel = [tempView viewWithTag:1000];
        tempLabel.text = [NSString stringWithFormat:@"Label Number %d" , i];
        [tempLabel sizeThatFits:CGSizeMake(1000, 1000)];
     
    self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width, yLocation);

然后我将 UIView 添加到我的 UIViewController

UIView *tempView = [[BuyTokensView alloc] initWithDelegate:self andViewController:self];
[self.view addSubview:tempView];
CGPoint point = CGPointMake(10, 0);
tempView.center = point;

视图显示正确,但我无法滚动 UIScrollView。我的 UIScrollView 高度小于我在 ContentSize 中分配的高度,为什么我不能滚动?

这是 UIViewController 的图片:

【问题讨论】:

记录滚动视图高度。检查是否将滚动视图添加为子视图。 我将滚动视图添加为我写的子视图,高度很好。 我认为你应该在滚动视图上添加 tempview [self.scrollView addSubView:tempView] @AravindBG 你是什么意思?我将 tempView 添加到 scrollView.. [self.scrollView addSubview:tempView]; 我说的是第二个代码 sn-p。 【参考方案1】:

您可以尝试禁用自动布局或使用本技术说明中的策略:

https://developer.apple.com/library/ios/technotes/tn2154/_index.html#//apple_ref/doc/uid/DTS40013309

【讨论】:

我尝试了混合方法,它只是设置我的scrollView.translatesAutoresizingMaskIntoConstraints = NO;,但它没有帮助。我还尝试关闭 AutoLayout,但没有帮助,所以我认为问题与 AutoLayout 无关。【参考方案2】:

我现在使用 Xcode 6/iOS 8+ 并打开了自动布局,我首先遇到了同样的问题,删除自动布局根本不起作用,所以为了制作滚动视图可垂直滚动,我确保了以下内容:

    滚动视图内容大小高度必须大于屏幕高度,这几乎不用说... 必须固定滚动视图的上/下/左/右约束,我使用情节提要完成此操作,因此此处没有显示代码

如果你想让滚动视图水平滚动,那么确保它的内容大小宽度大于屏幕宽度,其他规则同样适用。

这对我有用,希望它可以帮助别人。

【讨论】:

以上是关于UIScrollView 不工作(不能滚动)的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发UI篇—UIScrollView控件介绍

iOS开发UI篇—UIScrollView控件介绍

UIScrollView属性及其代理方法

像滚动一样的 UIScrollView 是如何工作的?

在不锁定 UI 的情况下禁用滚动视图

UI基础篇之UIScrollView