简单的页面控制

时间:2011-10-08 18:13:42

标签: iphone objective-c ios4 iphone-sdk-3.0

我有一个滚动视图,可以在两个视图之间切换。这两个视图在viewDidLoad中设置。我希望有一个页面控件,可以在选择相应的视图时切换。

我看过的所有教程都很复杂。

- (void)viewDidLoad {

    [super viewDidLoad];

    scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * kNumberOfPages, scrollView.frame.size.height);
    scrollView.showsHorizontalScrollIndicator = NO;
    scrollView.showsVerticalScrollIndicator = NO;
    scrollView.scrollsToTop = NO;
    scrollView.delegate = self;

    CGRect pageFrame = CGRectMake(0, 0, scrollView.bounds.size.width, scrollView.bounds.size.height);
    scrollView.contentSize = CGSizeMake(pageFrame.size.width * 2, pageFrame.size.height);
    scrollView.pagingEnabled = YES;

    view1.frame = pageFrame;
    [scrollView addSubview:view1];


    pageFrame.origin.x += pageFrame.size.width;
    view2.frame = pageFrame;
    [scrollView addSubview:view2];
}

- (IBAction)changePage:(id)sender {

}

2 个答案:

答案 0 :(得分:1)

当用户点击页面控件以移动到下一页或上一页时,控件将发送UIControlEventValueChanged事件以供委托处理。然后,委托可以评估currentPage属性以确定要显示的页面。页面控件在任一方向上只前进一页。

将ValueChanged操作的页面控件的委托设置为控制器的changePage方法。

- (IBAction)changePage:(id)sender {
   UIPageControl *pageControl = (UIPageControl *)sender;
   NSInteger currentPage = pageControl.currentPage;
   CGPoint offset = CGPointMake(currentPage * scrollView.frame.size.width, 0);
   [scrollView setContentOffset:offset animated:YES];
}

答案 1 :(得分:0)

int设置为tag的{​​{1}}属性,以跟踪哪一个被按下。

UIButton