を使用しているときにUIScrollView
設定していません。contentOffset
zoomToRect
中身がありますUIScrollView
。UIImageView
これまでのところ、スクロールとズーム自体は機能しています。ここで、アプリの開始時にスクロールビューに画像ビューの特定のズームされた長方形を指定します。このために実装zoomToRect:
しましたが、zoomsScale
正しく設定されていますが、が設定されていませんcontentOffset
。
使用時に期待される結果zoomToRect
はUIScrollView
、選択した四角形に応じてズームインまたはズームアウトし、メソッドcontentOffset
に指定された四角形の原点座標に従って設定することです。
実際の動作では、正しい方向にズームしますが、myは常に原点0,0にあり、で指定したrectのx(475)およびy(520)の予想される原点ではありません。
私の画像サイズは1473x1473です。zoomToRect
zoomScale
UIImageView
zoomToRect
ここにいくつかのコードがあります
- (void)viewDidLoad {
CGRect bounds = self.view.frame;
_imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bgImage.png"]];
self.containerView = [[UIView alloc] initWithFrame:bounds];
_containerView.contentMode = UIViewContentModeCenter;
_scrollView = [[UIScrollView alloc] initWithFrame:bounds];
_scrollView.delegate = self;
_scrollView.contentSize = _imageView.bounds.size;
_scrollView.minimumZoomScale = 0.2;
[_scrollView addSubview:_containerView];
[_containerView addSubview:_imageView];
[self.view addSubview:_scrollView];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[_scrollView zoomToRect:CGRectMake(475.0, 150.0, 520.0, 747.0) animated:NO];
}
#pragma mark UIScrollViewDelegate methods
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return _containerView;
}
- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
[self printVisibleRectToConsole:scrollView];
CGSize newImageViewSizeWithScale = CGSizeMake(_imageView.bounds.size.width * _scrollView.zoomScale,
_imageView.bounds.size.height * _scrollView.zoomScale);
_scrollView.contentSize = newImageViewSizeWithScale;
}
私の質問:
- なぜ
zoomToRect
設定しないのcontentOffset
ですか? - どうすれば期待どおり
zoomToRect
に変更できcontentOffset
ますか?