如何调整UIScrollView的大小,使其不是100%的父UIView?

问题描述:

我已经使用UITabBar模板构建了一个应用程序。我有几个tabbar项目,一个项目显示一个视图。该视图具有UIScrollView元素,该元素启用了分页,以模仿iPhone跳板的行为,即可从左向右滚动的页面。如何调整UIScrollView的大小,使其不是100%的父UIView?

我想放入一个UIPageControl,所以我调整了UIScrollView的大小,使它比父UIView高度略短,并且在它下面放置了一个UIPageControl。

当我运行应用程序时,UIScrollView始终是父UIView的高度的100%,我看不到UIP​​ageControl。

我得在选项卡的视图控制器我viewDidLoad方法如下代码:

UIScrollView *tempScrollView=(UIScrollView *)self.view; 
tempScrollView.contentSize=CGSizeMake(640,377); 

这台内容的大小确定,我可以滚动从左到右。我试过添加:

tempScrollView.frame=CGRectMake(0, 0, 640, 377); 

要调整滚动视图的大小,但仍显示100%。参见下图显示的问题:

example

我想你不应该调整框架,以640,377,因为它将使寻呼停止工作,一旦contentSize将是相同的帧大小。

一个解决方案是在接口生成器中设置所需的帧大小(如最左边的图)并设置适当的自动调整掩码。我客串你正在寻找的是下面

The most important part is the locked bottom margin

要检查是否更改工作,我会用高度明显较小的一个UIScrollView的配置,只是为了确保该行为是需要的。

+0

我已经在视觉上调整的UIScrollView的母公司视线的高度的三分之二。我已将滚动视图的背景设置为红色。我还按照您的建议设置了自动调整大小选项,但是当我运行应用程序并切换到该选项卡时,UIScrollView仍会填充整个视图。 UITabBar是否以某种方式操纵我的观点? – Camsoft 2011-03-10 14:44:19

+0

如果视图没有被一些代码指令调整大小,我没有任何其他假设。尝试禁用superview的autosize子视图属性。 – 2011-03-11 01:23:27

如果你希望你的视图滚动您需要更改tempScrollView.contentSize要大于tempScrollView.frame

如果你这样做:

CGFloat contentWidth = tempScrollView.frame.size.width*2; 
tempScrollView.contentSize=CGSizeMake(contentWidth,377); 

您将有2页。

您需要激活页面太:

[tempScrollView setPagingEnabled:TRUE];