如何以编程方式设置UIPageControl的当前页面?

6

我有一个UIScrollView,其中有3个“页面”(page 0,page 1,page 2),可以通过手指滑动进行切换。还有一个UIPageControl。UIScrollView从呈现页面0开始。我想做的是有时首先呈现页面3。如何在程序中实现这一点。

顺便说一句,仅仅将UIPageControl的currentPage设置为页面编号是无效的。

1个回答

24

(来自PageControl示例)

要直接跳转到scrollView的特定部分,请使用:

CGRect frame = scrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
[scrollView scrollRectToVisible:frame animated:YES];
我刚刚实现了同样的功能,例如scrollview和page control,并使用了

pageControl.currentPage = {pageNumber};

这个方法运行得很完美,请确保在Interface Builder中正确设置了pageControl outlet(如果你正在使用它)。

如果问题是scrollView不起作用,而不是pageControl。那么请确保正确设置了scrollView的contentsize。

    scrollView.contentSize = CGSizeMake(320*numberOfPages, scrollView.frame.size.height);

然后,您将内容添加到每个部分的滚动视图中。

page1ViewController.view.frame = CGRectMake(0, 0, 320, 200);
[scrollView addSubview:page1ViewController.view];

下一页会被向右推出一个屏幕的宽度

page2ViewController.view.frame = CGRectMake(320, 0, 320, 200);
[scrollView addSubview:page2ViewController.view];

应该将什么连接到什么?我的UIPageControl直接连接到我的RootViewController,而不是我的ScrollViewController(都在同一个xib文件中)。 - RexOnRoids
在您的控制器中为scrollView和pageControl创建插座@property(nonatomic, retain) IBOutlet UIScrollView *scrollView;@property(nonatomic, retain) IBOutlet UIPageControl *pageControl;并将它们链接到xib中的控件 - Liam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接