【问题标题】:UIScrollView won't scroll (Storyboards)UIScrollView 不会滚动(故事板)
【发布时间】:2013-10-27 19:03:00
【问题描述】:

我是故事板的新手;我之前做过一些 Interface Builder 和很多手动 UI 定位。我搜索了这个问题,尝试了其他相关帖子中的解决方案,但无济于事。

我有一个在 Storyboards 中添加了 UIScrollView 的视图控制器。 ScrollView 插座已连接,属性已合成。滚动启用被选中。弹跳已检查。即便如此,也没有迹象表明会发生任何滚动。当我检查 Bounces Vertically 时,我至少可以看到可滚动的内容,但在我释放后它会反弹回来。我发现的框架尺寸设置为 320 和 521。我尝试了不同的高度,但没有任何帮助。 (Storyboards 中设置的尺寸应该是多少,以适应新旧手机尺寸?)。

在viewDidLoad中,我添加了

    [scrollView setContentSize:CGSizeMake(320, 1000)];

随后的日志语句确认该值已被接受。但这也无济于事。

有人在一篇帖子中建议添加:

- (void)viewDidLayoutSubviews
{
    [super viewDidLayoutSubviews];
    [self.scrollView setContentSize:CGSizeMake(320, 808)];
}

这会在控制器加载时导致程序崩溃。

任何帮助将不胜感激!

谢谢。

【问题讨论】:

  • 也许你有另一个视图覆盖滚动和触摸而不是它?
  • 让你的视图控制器成为 UIScrollViewDelegate 的代表。它附带了一堆方法,您可以在其中测试您的 scrollView 是否得到触摸。在此处查看文档developer.apple.com/library/ios/documentation/uikit/reference/…
  • 嗨,Grzegorz,据我所知,滚动视图顶部只有一堆标签和文本字段。
  • Priyatham51,感谢您的提示。我按照你的指示做了并实现了scrollViewWillBeginDragging,它确实正在接收触摸。

标签: ios xcode uiscrollview ios7


【解决方案1】:

事实证明有两件事是必要的:

1) 将滚动视图的高度设置为 480。

2) 将约束添加到滚动视图的最底部字段。约束是 Pin >> Bottom Space to Superview。

【讨论】:

  • 我还通过向我的 UIScrollView 添加正确的约束来解决这个问题。
  • 谢谢。谢谢。谢谢。再次感谢。第二个问题。
  • 我认为#2 是唯一真正需要的。不知道为什么我认为需要 #1。
  • 第二个是关键,但基本上你也将底部布局约束放在superview上,而不是为一个设置480。
【解决方案2】:

只需添加以下方法:

- (void)viewDidLayoutSubviews
{
    [super viewDidLayoutSubviews];
    [self.scrollView setContentSize:CGSizeMake(320, 1700)];
}

这对我来说非常有效。

【讨论】:

  • 这就是问题:(void)viewDidLayoutSubviews。人们(包括我)在错误的地方写“self.scrollView setContentSize”,在 (void)viewDidLoad 或其他地方。重复一遍:这就是问题所在,(void)viewDidLayoutSubviews。
  • 什么是内容大小?
猜你喜欢
  • 2020-07-16
  • 1970-01-01
  • 1970-01-01
  • 2013-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-15
相关资源
最近更新 更多