【问题标题】:UIScrollView won't workUIScrollView 不起作用
【发布时间】:2013-03-09 03:06:24
【问题描述】:

我整个上午都在为此苦苦挣扎 3 个多小时,我真的快疯了!

我正在使用 Xcode 4.6 创建适用于 iOS 6 的 Storyboard 应用程序。我将 UIScrollView 拖放到 ViewController 中。在设计了 Scroll 视图的可视部分之后,我使用它的手柄将它垂直拉伸并向上推了一点,以便我可以看到该部分来设计屏幕的其余部分。完成后,我将滚动视图放回以适应视图。但我没有调整滚动视图的大小以匹配 IB 的视图大小。

我在 viewDidLayoutSubviews 方法中添加了以下代码行(使用该方法而不是 viewDidLoad,因为 Chris 的评论 here)。

self.scrollView.contentSize = self.view.frame.size;

代码被执行,但滚动条不会出现,而且滚动根本不起作用!我在这里经历了几乎所有关于此的问题和答案,并尝试了一切但无济于事。

我还附上了可运行的 Xcode 项目 here

请告诉我我应该怎么做才能让它工作。我永远对 Apple 感到沮丧。

谢谢。

【问题讨论】:

  • self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width,500);只需放置一个静态值并检查,然后将委托连接设置为您的滚动视图。 @Isuru
  • 滚动的contentsize必须大于scrollview的frame(height/width),否则它不会滚动,因为不需要滚动,所有内容都是可见的,无需滚动。还有你在使用“自动布局”吗,

标签: ios ios6 uiscrollview storyboard xcode4.6


【解决方案1】:

这很容易。删除 viewDidLayoutSubviews 方法并用以下代码替换 viewDidLoad。高度 672 目前是硬编码的。但它会根据滚动视图中的内容而改变。

- (void)viewDidLoad
{
    [super viewDidLoad];
     self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, 627);
    self.scrollView.frame = self.view.frame;
}

在情节提要中,执行以下步骤 1. 选择查看并转到尺寸检查器。 2. 从约束中选择底部空间。 3. 编辑底部空间约束并将常量值设置为0(它是-211)。

链接已更新源代码:http://www54.zippyshare.com/v/37137086/file.html

希望这会有所帮助。

【讨论】:

  • 非常感谢,伙计!我正在拔头发!我不只是硬编码值627,而是用self.mailAdvancedSearchScrollView.frame.size.height 替换它。它现在工作正常。再次感谢! :)
  • 很高兴它有帮助!编码快乐!
  • 嗨,Kunal,又是我。我再次遇到同样的问题,我整天都在努力解决它。这次我已经正确地遵循了所有内容并使用了上面的代码。但它仍然不滚动!这真是令人沮丧!我上传了项目here。希望你能再帮我一次,如果不是太多要求的话。
  • 问题出在 (1.) self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, self.scrollView.frame.size.height);和 (2.).storyboard 文件。在情节提要中您可以看到滚动视图的框架高度为 416,这意味着滚动视图以 416 的高度加载到屏幕上,因此由于第一行 (1.) 指的是更新后的高度(内容高度为 416)因此它不滚动。要修复它,您需要增加故事板中滚动视图框架的大小,以便它覆盖所有控件。
  • 和上面不要忘记更改底部空间约束并将常量值设置为 0
【解决方案2】:

UIScrollViews 只有在 contentSize 大于 frame 时才会滚动。如果它小于或等于它们的框架,它们只会像视图一样。

如果你想测试一下,试试:

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

【讨论】:

    猜你喜欢
    • 2014-02-04
    • 2013-12-30
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    相关资源
    最近更新 更多