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

时间:2010-03-24 14:04:07

标签: iphone xcode uiviewcontroller uiscrollview uipagecontrol

我在UIScrollView中有3个“页面”(第0页,第1页,第2页),通过手指滑动捕捉到它们。那里也有一个UIPageControl。 UIScrollView开始显示第0页。我想要做的是有时会出现第3页。我该如何以编程方式执行此操作。

简单地将currentPage(UIPageControl)设置为页码不会发生任何问题。

1 个答案:

答案 0 :(得分:23)

(来自PageControl示例)

直接转到scrollView的特定部分使用

CGRect frame = scrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
[scrollView scrollRectToVisible:frame animated:YES];

我刚刚实现了相同的功能,例如scrollview和页面控件,并使用了

pageControl.currentPage = {pageNumber};

效果很好,你确定在Interface Builder中正确设置了pageControl插座(如果你正在使用它)。

如果问题是scrollView不起作用,而不是pageControl。然后确保正确设置了scrollView的内容大小。

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

在此滚动视图中,您可以将内容添加到每个部分

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

下一页被推过1个屏幕宽度

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