程式要像Spring一樣在一屏中手指滑動實現多個頁面的滑動切換可使用UIScrollView來實現
- (void)viewDidLoad<br />{<br /> [super viewDidLoad];</p><p> _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.frame.size.width, self.view.frame.size.height)];<br /> _scrollView.userInteractionEnabled = YES;<br /> _scrollView.directionalLockEnabled = YES;<br /> _scrollView.pagingEnabled = YES;<br /> _scrollView.showsVerticalScrollIndicator = NO;<br /> _scrollView.showsHorizontalScrollIndicator = NO;<br /> _scrollView.delegate = self;</p><p> CGRect frame = self.view.frame;<br /> frame.origin.y = 0.0f;<br /> UIView* viewFirst = [[[UIView alloc] initWithFrame:frame] autorelease];<br /> viewFirst.backgroundColor = [UIColor greenColor];</p><p> frame.origin.x += self.view.frame.size.width;<br /> UIView* viewSecond = [[[UIView alloc] initWithFrame:frame] autorelease];<br /> viewSecond.backgroundColor = [UIColor blueColor];</p><p> frame.origin.x += self.view.frame.size.width;<br /> UIView* viewThird = [[[UIView alloc] initWithFrame:frame] autorelease];<br /> viewThird.backgroundColor = [UIColor redColor];<br /> _scrollView.contentSize = CGSizeMake(self.view.frame.size.width*3, self.view.frame.size.height);<br /> [_scrollView addSubview:viewFirst];<br /> [_scrollView addSubview:viewSecond];<br /> [_scrollView addSubview:viewThird];</p><p> CGSize sizePageControl = CGSizeMake(120, 40);<br /> CGRect framePageControl = CGRectMake((self.view.frame.size.width-sizePageControl.width)/2, (self.view.frame.size.height-sizePageControl.height-40), sizePageControl.width, sizePageControl.height);<br /> _pageControl = [[UIPageControl alloc] initWithFrame:framePageControl];<br /> _pageControl.hidesForSinglePage = YES;<br /> _pageControl.userInteractionEnabled = NO;<br /> _pageControl.backgroundColor = [UIColor clearColor];<br /> _pageControl.numberOfPages = 3;</p><p> [self.view addSubview:_scrollView];<br /> [self.view addSubview:_pageControl];</p><p>}<br />
同時你的ViewController 要實現UIScrollViewDelegate 協議的如下方法, 根據scroll 更新UIPageControl(當然如過你用到UIPageControl的話就無所謂了...)
- (void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView<br />{<br /> int index = fabs(_scrollView.contentOffset.x)/self.view.frame.size.width;</p><p> _pageControl.currentPage = index;<br />}<br />
下面是: