今回は画像の拡大縮小を行って見る。やるべきことはプロパティとデリゲートの設定。
(1)プロパティ設定
拡大縮小可能なスケール(倍率)を設定する。
self.scrollView.minimumZoomScale = 0.1 // 1/10まで縮小可能 self.scrollView.maximumZoomScale = 10.0; // 10倍まで拡大可能
倍率は Interface Builder でも設定が可能。
(2) UIScrollViewDelegate
デリゲートを実装し、拡大縮小対象のビューを viewForZoomingInScrollView: で指定する。
@interface ScrollViewStudy2ViewController : UIViewController <UIScrollViewDelegate> { UIScrollView* scrollView_; }
今回は1枚のビューを使っているので subviews の最初の要素を返すだけ。
-(UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView { return [[scrollView subviews] objectAtIndex:0]; }
実装したら delegateプロパティを設定するか、Interface Buidlerで delegateの接続を行っておく。
実行してみよう。まず元画像はこれ。
拡大は問題なし。
縮小は..
ああ、ビューが一枚だから全体が縮小されてしまった。ページ単位で拡大縮小するにはビューを画像ごとに分ける必要があるのか。
参考情報
- UIScrollViewDelegate Protocol Reference
- プロトコルのリファレンス
その他
(メモ)iPhoneシミュレータでのピンチ操作は Optionキーを押しながらマウスを動かす。
Responses
Leave a Response