2013-03-20 75 views
2

我一直在这个整个上午奋斗了超过3个小时,现在我真的疯了!UIScrollView将无法工作

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

我在viewDidLayoutSubviews方法中添加了以下代码行(由于Chris的注释here,使用该方法代替viewDidLoad)。

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

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

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

请告诉我应该做些什么才能使其工作。我对苹果永远感到沮丧。

谢谢。

+0

self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width,500);只需放置一个静态值并检查并设置委托连接到您的滚动视图。 @Isuru – 2013-03-20 06:18:12

+0

scrollize的contentize必须大于scrollview的frame(height/width),否则不会滚动,因为不需要滚动,所有内容都可见而不滚动。而且你还在使用“自动布局”, – Exploring 2013-03-20 06:21:47

回答

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.从contraments中选择Bottom Space。 3.编辑底部空间约束并将常量值设置为0(它是-211)。

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

希望这有助于。

+0

谢谢你,男人!我把头发拉出来了!我不用硬编码值627,而是用'self.mailAdvancedSearchScrollView.frame.size.height'替换它。它的工作现在很好。再次感谢! :) – Isuru 2013-03-20 06:39:46

+0

很高兴帮助!快乐编码! – Kunal 2013-03-20 06:45:49

+0

嗨,库纳尔,我的一次。我再次陷入同样的​​问题,我一整天都在努力解决它。这一次我正确地遵循了一切,并使用了上面的代码。但它仍然不滚动!这真令人沮丧!我上传了这里的项目(http://www21.zippyshare.com/v/44079522/file.html)。希望你能再帮我一次,如果它没有太多问的话。 – Isuru 2013-03-25 11:10:11

1

UIScrollViews只会在其contentSize大于其框架时才滚动。如果它小于或等于他们的框架,他们就会像意见一样行事。

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

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