iPhone版Safariのようなページ切替ビュー。こんなやつ。
ページを挿入・削除するとアニメーションが起こる。
タップするとアニメーションして画面にフィットする。画面上部にヘッダビューを付けてカスタマイズすることができる。
使い方は、まずHGPageScrollView を作りメインのビューへ貼る。
HGPageScrollView *pageScrollView = [[[NSBundle mainBundle] loadNibNamed:@"HGPageScrollView" owner:self options:nil] objectAtIndex:0]; [self.view addSubview:pageScrollView];サンプルではページの定義を XIBファイルで行っていた。XIBで定義すれば容易にカスタマイズできる。
後は Data Source/Delegate を実装すればいい。
@protocol HGPageScrollViewDataSource@required // Page display. Implementers should *always* try to reuse pageViews by setting each page's reuseIdentifier. // This mechanism works the same as in UITableViewCells. - (HGPageView *)pageScrollView:(HGPageScrollView *)scrollView viewForPageAtIndex:(NSInteger)index; @optional - (NSInteger)numberOfPagesInScrollView:(HGPageScrollView *)scrollView; // Default is 1 if not implemented // you should re-use the UIView that you return here, only initialize it with appropriate values. - (UIView *)pageScrollView:(HGPageScrollView *)scrollView headerViewForPageAtIndex:(NSInteger)index; - (NSString *)pageScrollView:(HGPageScrollView *)scrollView titleForPageAtIndex:(NSInteger)index; - (NSString *)pageScrollView:(HGPageScrollView *)scrollView subtitleForPageAtIndex:(NSInteger)index; @end
@protocol HGPageScrollViewDelegate@optional // Dragging - (void) pageScrollViewWillBeginDragging:(HGPageScrollView *)scrollView; - (void) pageScrollViewDidEndDragging:(HGPageScrollView *)scrollView willDecelerate:(BOOL)decelerate; // Decelaration - (void)pageScrollViewWillBeginDecelerating:(HGPageScrollView *)scrollView; - (void)pageScrollViewDidEndDecelerating:(HGPageScrollView *)scrollView; // Called before the page scrolls into the center of the view. - (void)pageScrollView:(HGPageScrollView *)scrollView willScrollToPage:(HGPageView*)page atIndex:(NSInteger)index; // Called after the page scrolls into the center of the view. - (void)pageScrollView:(HGPageScrollView *)scrollView didScrollToPage:(HGPageView*)page atIndex:(NSInteger)index; // Called before the user changes the selection. - (void)pageScrollView:(HGPageScrollView *)scrollView willSelectPageAtIndex:(NSInteger)index; - (void)pageScrollView:(HGPageScrollView *)scrollView willDeselectPageAtIndex:(NSInteger)index; // Called after the user changes the selection. - (void)pageScrollView:(HGPageScrollView *)scrollView didSelectPageAtIndex:(NSInteger)index; - (void)pageScrollView:(HGPageScrollView *)scrollView didDeselectPageAtIndex:(NSInteger)index; @end
よく出来てる。見た目がなかなかいい。
Responses
Leave a Response