UIPageControl值已更改未触发

时间:2011-09-09 15:53:14

标签: objective-c ios cocoa-touch

我对UIPageControl有疑问。我在下面简化了问题:

我在“界面”构建器的应用程序中放了一个按钮和UIPageControl,并在代码中添加以下内容:

- (IBAction)tappedButton:(id)sender{
    self.pageControl.currentPage = 3;
    NSLog(@"Tapped Button");
}

- (IBAction)changePage:(id)sender{
    NSLog(@"PAGE Changed!!!!");        
}

我通过Interface Builder将Value Changed操作附加到pageController。

当我点击按钮时,我看到输出“Tapped Button”,第三个点突出显示......但是changePage方法永远不会被调用。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

只有当用户使用UIPageControl请求更改页面时,才会调用changePage:方法。当用户点击按钮时不会调用它。如果要在按下按钮时调用changePage:方法,请明确调用它:

 [self changePage: nil];

答案 1 :(得分:1)

UIPageControl实际上并不会为您更改页面。您必须编写该代码,以响应valueChanged事件。因此,您希望将UIPageControl对象的该事件连接到输出(我猜是tappedButton:),然后调用您的changePage:方法来实际更改UI。这有帮助吗?

Apple文档中引用了一些使用UIScrollView和UIPageControl的示例项目。检查一下。