スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
このエントリーをはてなブックマークに追加

[iOS]画像を中央に表示する

あんまり需要のなさそうな回です。
今回は画像を中央に表示させ、拡大縮小をするというものです。
やたらに時間かけて考えてしまったのでメモっておきます。

下記画像をプロジェクト内に取り込みます。(フォルダはどこでもいいです)
fw_icon

以下ソースについて

ヘッダファイル
//SampleImageViewController.h
#import <UIKit/UIKit.h>

@interface SampleImageViewController : UIViewController <UIScrollViewDelegate>{
UIView *zoom_target_view;
}

@end


メソッドファイルのviewDidLoadにこう書きます
//SampleImageViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = UIColor.blackColor;
UIScrollView *scroll_view = [[[UIScrollView alloc] init] autorelease];
scroll_view.frame = CGRectMake(0, 0,
self.view.frame.size.width,
self.view.frame.size.height);
scroll_view.maximumZoomScale = 2.0;
scroll_view.minimumZoomScale = 0.4;
scroll_view.delegate = self;
[self.view addSubview:scroll_view];
UIImage *src_image = [UIImage imageNamed:@"fw-icon-10-500x500-64x64.jpg"];
UIImageView *image_view = [[[UIImageView alloc] init] autorelease];
image_view.image = src_image;
image_view.frame = CGRectMake(0, 0,
scroll_view.frame.size.width,
scroll_view.frame.size.height);
image_view.contentMode = UIViewContentModeScaleAspectFit;
image_view.center = scroll_view.center;
image_view.backgroundColor = UIColor.blackColor;
[scroll_view addSubview:image_view];
zoom_target_view = image_view;
}


さらにviewDidLoadの下に次のメソッドを追加する。
//UIScrollViewDelegateメソッド
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
NSLog(@"viewForZoomingInScrollView:");
return zoom_target_view;
}

//scrollView:zoom中のスクロールビュー
// view:zoom対象のビュー
// scale:zoom比率
- (void)scrollViewDidEndZooming:(UIScrollView*)scrollView withView:(UIView*)view atScale:(float)scale {
if(scale < 1.0){
view.center = scrollView.center;
}
}
このエントリーをはてなブックマークに追加

コメントの投稿

非公開コメント

Translation


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
プロフィール

チーズくん

Author:チーズくん
個人的メモをただ羅列しています。
twitter:@cheese1038

バロメーター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。