iPhoneアプリ開発 -UIScrollViewで画像を拡大・縮小-
やりたいこと
UIScrollViewでピンチアウト・インして上に乗っている画像を拡大・縮小したい。
やったこと
前提
前提として以下とします。
- ベースとなるUIScrollView
- 変数名:scrollView
- UIScrollViewの上に乗っているUIImageView
- 変数名:imageView
interface
interfaceでUIScrollViewDelegateプロトコルを追加します。
@interface SampleViewController : UIViewController<UIScrollViewDelegate>
実装
以下のようにプロパティを設定します。
この場合、ズームの最小値が1.0倍で最大値が4.0倍になります。
scrollView.delegate = self; scrollView.minimumZoomScale = 1.0; scrollView.maximumZoomScale = 4.0;
ピンチイン・アウトをした場合の対象となるコンテンツを教えるために以下のメソッドを実装します。
ここで、returnで返すのがUIScrollViewの上に乗っているUIImageViewになります。
- (UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView { return imageView; }
たった上記のコードだけでピンチイン・ピンチアウトができます。
上記以外に以下の3つのメソッドを使うと、色々と処理を追加できます。
//ドラッグが終わった時に呼ばれるメソッド - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate { } //画面が静止したときに呼ばれるメソッド - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { } //ズームが終了した時に呼ばれるメソッド - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale { }
広告
関連記事
-
Androidアプリ開発 -画像を加工してセピア色にしてみる-
* やりたいこと ギャラリーから選んだ画像を加工してセピア色にしたい * ソース ** 画像を取得
-
複数アカウントでgithubを使う
1つの端末で複数のアカウントを使いたくなったので、その方法を整理してみた。 流れとしては以下のとおり
-
iPhoneアプリ開発 -UIScrollViewでタッチを取得-
* やりたいこと UIScrollViewでタッチを取得する。 * 方法 通常のUIScrollV
-
jQuery Mobileのリストの見た目をちょっとカスタマイズ -覚書-
jQuery Mobileを使えば簡単にスマートフォン対応できる言えば出来るのですが、少しでもカスタ
-
Twitterでサービスにログイン -ソーシャルログイン-
* やりたいこと -自身のWebサービスにTwitterIDでログイン(ソーシャルログイン)したい。
-
Selenium2.0でUIテスト(1) -まずはPHPでやってみる-
久しぶりにSeleniumを触ってみました。 Selenium2.0から色々と変わったみたいで少々
-
iPhoneアプリ開発 −フォントの変更−
一言:最近、iPhoneアプリの開発のためMacばかり触ってて、Windowsに戻ると混乱します。
-
iPhoneアプリ開発 −UITabControllerの利用−
* やりたいこと 上にあるように下部にあるタブをタッチしたら別のページを呼び出す。 *
-
CakePHP1.3でテストコード(3) -ENUM型が使えない-
cakePHP1.3でのSimpleTestを使ったテストケースの第3回目。 今回は、テーブル構成で
-
さくらのVPSでJenkins -執事さんとご対面-
さくらのVPSを利用している方は多いかと思います。 私も、自分で遊ぶ用(開発用)として借りてみまし