ホーム画面はUIScrollView
簡単UIPageControl
です:)
例 :
// MyViewController.h
@interface MyViewController : UIViewController <UIScrollViewDelegate> {
UIScrollView *_scrollView;
UIPageControl *_pageControl;
}
// MyViewController.m
// in your viewDidLoad method
int numberOfPages = 3;
_scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width,
self.view.frame.size.height)];
[_scrollView setContentSize:CGSizeMake(numberOfPages*_scrollView.frame.size.width, _scrollView.frame.size.height)];
[_scrollView setPagingEnabled:YES];
[_scrollView setShowsHorizontalScrollIndicator:NO];
[_scrollView setDelegate:self];
[self.view addSubview:_scrollView];
_pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, _scrollView.frame.size.height-30, _scrollView.frame.size.width, 20)];
[_pageControl setNumberOfPages:numberOfPages];
[_pageControl setCurrentPage:0];
[self.view addSubview:_pageControl];
for (int i=0; i<numberOfPages; i++) {
CGRect frame = _scrollView.frame;
frame.origin.x = frame.size.width * i;
frame.origin.y = 0;
UIView *view = [UIView alloc] initWithFrame:frame];
//Setup your view
[_scrollView addSubview:view];
}
現在表示されているビューに関して特定のメソッドを実行する場合は、scrollViewDidScroll:
メソッドを使用します (たとえば、データベースからコンテンツをロードする)。
- (void)scrollViewDidScroll:(UIScrollView *)sender {
CGFloat pageWidth = _scrollView.frame.size.width;
int page = floor((_scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
_pageControl.currentPage = page;
//do whatever you want..
}
これは、どのように行うことができるかを示すための単なる例です。データベースを使用している場合、または各ビューが異なる場合は、ビューをセットアップしたりデータを取得したりするために異なる手順を実行する必要がありますが、ロジックは同じです...