2010年9月10日金曜日

簡易スライドビューア [2] 拡大

[前回] Cocoaの日々: 簡易スライドビューア [1]基本動作

今回はこれに拡大機能を追加する。


UIScrollViewを使った拡大


画像を拡大するのは簡単で UIScrollView上に UIImageViewを追加し、UIScrollViewDelegateの所定のメソッドでこの UIImageViewを返すだけで良い。

[参考] UIScrollViewDelegate Protocol Reference - viewForZoomingInScrollView:


実装


サンプルコードでは既に UIScrollView上に UIImageViewを載せてそこで画像を表示しているのでデリゲートメソッドを実装するだけで良い。ただEasyGalleryViewControllerは既にベースとなる UIScrollViewの UIScrollViewDelegate先になっているので、できれば別のインスタンスをデリゲート先にしたい。また今後実装する予定の画像のダブルタップ操作のハンドリングを考えて今回は UIImageViewのサブクラスを用意し、そこをデリゲート先とした。

@interface CustomImageView : UIImageView  {

}

@end
実装メソッドはこれだけ。
@implementation CustomImageView

-(UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
 return self;
}

@end

前回のコードで UIImageViewを使用している箇所をすべてこのCustomImageViewに差し替える。
- UIImageView* imageView =
 [[UIImageView alloc] initWithFrame:imageViewFrame];
+ CustomImageView* imageView =
 [[CustomImageView alloc] initWithFrame:imageViewFrame];

これで終わり。


動作確認


動かしてみよう。まず初期表示。
 拡大してみる。いい感じだ。
 拡大したままフリック。スクロールも問題なく行われる。

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


参考情報


Scroll View Programming Guide for iOS: Basic Zooming Using the Pinch Gestures

0 件のコメント:

コメントを投稿