簡易スライドビューア [16] スライドショー(3) 停止その2

2010年10月19日火曜日 | Published in | 0 コメント

このエントリーをはてなブックマークに追加

[前回] Cocoaの日々: 簡易スライドビューア [15] スライドショー雛形(2) 調整

ピンチやフリックでスライドショーが停止しない。前回の実装ではイベントハンドリングが不足しているのでこれを直す。

#もはやタイトルが何のことだがわからないが...


イベント処理


対処すべきは、タップ、ピンチ(拡大縮小)、フリック(ページめくり)の3つ。前回は最初のタップしかハンドリングしていなかったので、スライドショ−実行中にピンチ、フリックしても止まらない。
ビュー階層


タップとピンチは一番上の UIScrollView が処理する。フリックは2番目のベースの UIScrollViewが処理。まず前回のコードを書き直してタップとピンチに対処する。
@class XCGalleryInnerScrollView;
@protocol XCGalleryInnerScrollViewDelegate

- (void)didTouched:(XCGalleryInnerScrollView*)innerScrollView;

@end
touchesBegan:withView: と UIScrollViewDelegate の scrollViewWillBeginZooming:withView: を実装する。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
 [self.eventDelegate didTouched:self];
}
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
{
 [self.eventDelegate didTouched:self];
}



続いてフリックの対処。ベースの UISCrollViewのデリゲート先は XCGalleryViewになっているのでここでフリックを処理する。
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
 [self stopSlideShow];
}


これでスライドショーが停止するようになった。


ソースは GitHubからどうぞ。
EasyGallery at 2010-10-19 from xcatsan's iOS-Sample-Code - GitHub


(今回は以上)

Responses

Leave a Response

人気の投稿(過去 30日間)