UIScrollView不起作用

时间:2013-03-20 06:07:01

标签: ios ios6 uiscrollview storyboard xcode4.6

我整个上午一直在努力奋斗超过3个小时,我真的疯了!

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

我在viewDidLayoutSubviews方法中添加了以下代码行(由于Chris的评论为here),因此使用该方法代替viewDidLoad

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

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

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

请告诉我应该怎么做才能让这个工作。我对Apple一直感到沮丧。

谢谢。

2 个答案:

答案 0 :(得分:5)

虽然很容易。删除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

希望这有帮助。

答案 1 :(得分:1)

UIScrollViews只会在其contentSize大于其框架时滚动。如果它小于或等于它们的框架,它们就会像观点一样。

如果您想测试一下,请尝试:

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