【问题标题】:Cannot interact with UIScrollView无法与 UIScrollView 交互
【发布时间】:2012-09-03 09:04:18
【问题描述】:

在你抨击我重复之前,请知道我已经查看了几乎所有其他方法,但它们都没有帮助。我有一个长视图,其中有一个滚动视图。

视图是 320 x 671。滚动视图已正确链接到插座“scrollView”。

“scrollView”属性已正确声明和合成。

我的代码:

    [scrollView setScrollEnabled: YES]; 

    scrollView.contentSize = CGSizeMake(320,  671);

scrollView.clipsToBounds = YES;
scrollView.delegate = self; // I have adopted the delegate protocol in .h

所以,我的问题是视图不滚动,滚动条甚至不显示。

编辑:

我将 uiview 的大小调整为正常的 320 x 460。我删除了 xib 中的滚动视图并决定添加如下:

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame: CGRectMake(self.view.center.x, self.view.center.y, 320, 460)]; 

[scrollView setScrollEnabled: YES];

 scrollView.contentSize = CGSizeMake(320, 671); 

scrollView.clipsToBounds = YES; scrollView.delegate = self; 

[self.view addSubview: scrollView];

好的,现在发生的情况是,当我滚动屏幕时,栏会出现,我可以左右滚动以更改栏的位置,但实际视图不会滚动

【问题讨论】:

  • 你检查过是否设置了滚动视图的frame并添加为子视图吗?
  • 您是否检查过User Interaction Enabled 复选框是否被选中?和,哪个在顶视图上?是scrollView还是tableView?因为我看到你这里有一个 tableView。
  • 在 xib 文件中启用了用户交互,我不需要将滚动视图添加为子视图或设置其框架,因为它在我的 xib 中,如上图所示
  • 只需删除之前的连接并重新连接即可....:)
  • 从你上面的图片看起来你的滚动视图是 671 点高(当它可能应该是 480 或类似时)所以尝试按照 neilvillareal 的建议设置框架,而不是仅仅说你不需要。

标签: iphone objective-c ios xcode uiscrollview


【解决方案1】:

您需要将 UIScrollView 的 ContentSize 设置为 您的 CONTENT 的大小

不要将“ContentSize”设置为视图的大小。 “内容大小”应该告诉滚动视图中内容的大小。

【讨论】:

  • 我不确定我是否理解。如图所示,视图超长,所以我想滚动视图以便能够滚动整个视图长度。
  • 您是否将“ContentSize”设置为整个视图长度?
  • 你是否在滚动视图中添加了视图?您添加的视图应该是滚动视图的子视图。
  • 在界面生成器中,告诉您的滚动视图剪切子视图并取消选择清除图形上下文。如果是您没有设置内容大小的情况,那么您很快就会发现。
【解决方案2】:

您的滚动视图应为 320x460,您的 scrollview.contentsize 应为 320x671。 您必须将子视图布置在 IB 视图的“外部”。

编辑:

你的布局应该是这样的:

http://ge.tt/api/1/files/4qGbz2N/2/blob/x675

文本视图放置在视图框架之外,但在滚动视图内部。应相应地设置滚动视图内容大小以适合所有子视图。在这种情况下,yValue 应该是 550 + 128

【讨论】:

  • 让我试试这个,关于在 IB 之外布局子视图,我可以扩展视图,布局我的子视图而不是调整它的大小
  • 在 IB 中创建一个长 UIVIew 将当前在滚动视图中的所有元素添加到该视图。然后将 UIView 连接到您的 viewcontroller,然后在 viewdidload 上将其添加到您的 UIScrollview 并将滚动视图的内容大小设置为 UIview 的大小。
  • 我将 uiview 的大小调整为正常的 320 x 460。我删除了 xib 中的滚动视图并决定添加如下:UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame: CGRectMake(self.view.center.x, self.view.center.y, 320, 460)]; [scrollView setScrollEnabled: YES]; scrollView.contentSize = CGSizeMake(320, 671); scrollView.clipsToBounds = YES; scrollView.delegate = self; [self.view addSubview: scrollView]; 但仍然没有成功
  • 好的,现在发生的情况是,当我滚动屏幕时,栏会出现,我可以滚动来更改栏的位置,但实际视图不会滚动
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-06
  • 1970-01-01
  • 2013-05-19
  • 2015-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多