- TOP>
- iOS Objective-C, Swift Tips>
- ピンチイン/ピンチアウトで画像を拡大/縮小
ピンチイン/ピンチアウトで画像を拡大/縮小iOSでユーザのピンチイン/ピンチアウト操作によって画像を拡大/縮小するために必要な事は概ね以下になる。
- 表示する画像(JPEG等)を準備
- Main.storyboardにUIScrollViewを貼り付ける
- UIScrollViewの上にUIImageViewを貼り付ける
- UIImageViewで表示する画像を指定
- UIScrollViewDelegateプロトコル使用を宣言
- UIScrollViewの最小/最大倍率を設定
- UIScrollViewのインスタンスにデリゲート割り当て
- UIImageViewのインスタンスを返すviewForZoomingInScrollViewメソッドを作成
まず、ImageViewで表示する画像を用意する。表示したい画像をProject Navigatorにドラッグし、Xcodeで使えるようにする。この作業を行わないとImageViewでこの画像を選択できない。
次に、Main.storyboardにScrollViewを貼り付け、その上にImageViewを貼り付ける。Attributes InspectorでImageViewのImageプロパティをクリックし、先ほど追加した画像を選択する。
また、ImageViewのModeは"Aspect Fit"(画像のアスペクト比を維持しながらImageView内で画像がすべて表示される)にでもしておこう。この例では画面いっぱいにImageViewを貼り付けてある。
コードではViewController.hではUIScrollViewDelegateプロトコル使用を宣言しておく。追加したScrollViewとImageViewのアウトレットも作成しておこう。
1 2 3 4 5 6 7 | #import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UIScrollViewDelegate>
@property (weak, nonatomic ) IBOutlet UIScrollView *scrollView;
@property (weak, nonatomic ) IBOutlet UIImageView *imageView;
@end
|
ViewController.mのviewDidLoadでScrollViewのminimumZoomScaleプロパティとmaximumZoomScaleプロパティを設定し、デリゲートを割り当てる。今回は最小倍率が等倍、最大倍率が3倍とした。最後にImageViewのインスタンスを返すviewForZoomingInScrollViewを追加すれば完成だ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize scrollView;
@synthesize imageView;
- ( void )viewDidLoad
{
[ super viewDidLoad];
scrollView.minimumZoomScale = 1.0;
scrollView.maximumZoomScale = 3.0;
scrollView.delegate = self ;
}
- ( void )didReceiveMemoryWarning
{
[ super didReceiveMemoryWarning];
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return self .imageView;
}
@end
|
(2013/10/08)
Copyright© 2004-2019 モバイル開発系(K) All rights reserved.
|