【问题标题】:Adding a UIScrollView to subview does not scroll将 UIScrollView 添加到子视图不会滚动
【发布时间】:2012-10-11 15:48:34
【问题描述】:

我有一个带有按钮的视图控制器。当按下按钮时,我想添加一个包含滚动视图的子视图。现在,只要我不添加 xib,我的代码就会显示子视图并滚动正常。当我将 xib 添加到滚动视图时,xib 出现在子视图中,但不再有任何滚动。

主视图控制器:

-(IBAction)startNewSearch:(id)sender {
    UIScrollView *myScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 600)];

    UIView *myView = [[[NSBundle mainBundle] loadNibNamed:@"NewSearch" owner:self options:nil] objectAtIndex:0];

    [myScrollView setScrollEnabled:YES];
    [myScrollView setContentSize:CGSizeMake(320, 600)];
    [myScrollView setShowsVerticalScrollIndicator:YES];
    [myScrollView setShowsHorizontalScrollIndicator:YES];
    [myScrollView setPagingEnabled:NO];

    [myScrollView addSubview:myView];

    [self.view addSubview:myScrollView];
}

NewSearch 类是一个 UIView。它的 xib 是 320 宽 x 600 高。

【问题讨论】:

  • 没有人对此有答案吗?好的......裸露任何灯泡时刻,我会假设将 UIScrollView 添加到子视图不起作用。我通过推送一个带有滚动视图的单独视图控制器来代替这个问题。与 iPhone 上的 TMZ 应用非常相似。

标签: uiview uiviewcontroller uiscrollview subview addsubview


【解决方案1】:

我不确定我是否完全理解了您的问题,但它可能与我所做的事情相似,也可能不同。

看看添加这个是否可行:

-(void)viewWillAppear:(BOOL)animated {    
   [self.myScrollView setFrame:CGRectMake(0, 0, 320, 600)];
}

对不起,如果这不是您要找的...我也有滚动视图的问题。祝你好运!

【讨论】:

  • 你是绝对正确的。我刚刚解决了一个 UIScrollView 冻结在我身上的类似问题。您的建议解决了问题。
  • 太棒了!我很高兴它对你有用!现在如果我能弄清楚为什么我的冻结了......哈哈
  • 我从来没有真正找到问题的根源。我的另一个问题的解决方案是使用命令“scrollView.frame = CGRectMake(0, 0, 320, 960);”在“-(void)viewWillAppear:(BOOL)animated”中。没有这个,它只会冻结滚动。但为什么仍然开放。
  • 是的,我真的希望那行代码能解决我的问题,但不幸的是它不会以任何方式影响它......所以继续寻找答案...... :)跨度>
【解决方案2】:

发生这种情况是因为您的内容大小高度与框架高度相同。 尝试使用与屏幕上的主视图相同的帧大小,并且滚动视图的内容大小应大于高度(在您的情况下)或宽度(这取决于您需要水平或垂直滚动​​)。

例如

CGRect scrollFrame = CGRectMake(0, 0, [self.view bounds].size.height, self.view bounds].size.width);
UIScrollView *myScrollView = [[UIScrollView alloc]initWithFrame: scrollFrame];

...

[myScrollView setContentSize:CGSizeMake(320, **800**)];

如您所见,内容大小的高度大于滚动视图的框架高度。所以它可以水平滚动。 另请参阅UIScrollView 文档。

【讨论】:

  • 首先,很抱歉这么晚才回来。我试过了。我实际上有890的身高。由于某种原因,将滚动视图添加为子视图似乎无法滚动。
【解决方案3】:

我在开始使用 ios8 时遇到了类似的问题。事实证明,触摸被视图控制器链中的某些东西所困。当我开始将 presentView Controller 用于包含滚动视图的视图控制器时,触摸(和滚动)再次开始工作。

【讨论】:

    猜你喜欢
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 2019-06-17
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多