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

时间:2011-03-10 13:01:03

标签: objective-c cocoa-touch ios4 uiscrollview

我使用UITabBar模板构建了一个应用程序。我有几个tabbar项目,一个项目显示一个视图。该视图有一个UIScrollView元素,该元素启用了分页功能,以模仿iPhone跳板的行为,即可以从左向右滚动的页面。

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

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

我在选项卡视图控制器的viewDidLoad方法中有以下代码:

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

这会将内容大小设置为ok,我可以从左向右滚动。我试过添加:

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

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

example

2 个答案:

答案 0 :(得分:0)

我认为您不应该将帧的大小调整为640,377,因为一旦contentSize与帧大小相同,它将使分页停止工作。

一种解决方案是在界面构建器中设置所需的帧大小(如最左边的图)并设置适当的自动调整掩码。我猜你正在寻找的是下面的配置

The most important part is the locked bottom margin

要检查更改是否有效,我会使用高度明显较小的uiscrollview,以确保行为符合要求。

答案 1 :(得分:0)

如果您希望滚动视图,则需要将tempScrollView.contentSize更改为大于tempScrollView.frame

如果你这样做:

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

您将有2页。

您还需要使用以下命令激活分页:

[tempScrollView setPagingEnabled:TRUE];