私はiphoneに慣れていないので、スクロールビューで画像を自動スクロールするプロジェクトに取り組んでいます。また、画像のズームインとズームアウトを行う必要があります。これは可能ですか? はいの場合、どのように実行できますか。コードを提案してください。
ありがとう。
私はiphoneに慣れていないので、スクロールビューで画像を自動スクロールするプロジェクトに取り組んでいます。また、画像のズームインとズームアウトを行う必要があります。これは可能ですか? はいの場合、どのように実行できますか。コードを提案してください。
ありがとう。
- (void)viewDidLoad
{
[super viewDidLoad];
// 1
UIImage *image = [UIImage imageNamed:@"photo1.png"];
self.imageView = [[UIImageView alloc] initWithImage:image];
self.imageView.frame = (CGRect){.origin=CGPointMake(0.0f, 0.0f), .size=image.size};
[self.scrollView addSubview:self.imageView];
// 2
self.scrollView.contentSize = image.size;
}
viewDidLoad
最初に、プロジェクトに追加した photo1.png 画像を使用して画像ビューを作成する必要があります。画像ビュー フレーム (サイズと位置) を設定して、画像のサイズになり、親内のポイント 0,0 に配置します。 . 最後に、画像ビューがスクロール ビューのサブビューとして追加されます。
スクロール ビューに含まれるコンテンツのサイズを伝える必要があります。これにより、水平方向と垂直方向にどれだけスクロールできるかがわかります。この場合、それは画像のサイズです。
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
// 1
CGRect scrollViewFrame = self.scrollView.frame;
CGFloat scaleWidth = scrollViewFrame.size.width / self.scrollView.contentSize.width;
CGFloat scaleHeight = scrollViewFrame.size.height / self.scrollView.contentSize.height;
CGFloat minScale = MIN(scaleWidth, scaleHeight);
self.scrollView.minimumZoomScale = minScale;
// 2
self.scrollView.maximumZoomScale = 1.0f;
self.scrollView.zoomScale = minScale;
}
viewWillAppear
次に、スクロール ビューの最小ズーム スケールを計算する必要があります。ズーム スケール 1 は、コンテンツが通常のサイズで表示されることを意味します。ズーム スケールが 1 未満の場合はコンテンツがズーム アウトされていることを示し、ズーム スケールが 1 より大きい場合はコンテンツがズーム インされていることを示します。
画像の解像度がサポートできる以上に拡大すると画像がぼやけて見えるため、最大ズーム スケールを 1 に設定します。画像が完全に縮小されるように、最初のズーム スケールを最小に設定します。