0

我正在尝试将 UIImageView 放大UIScrollView。我有这个:

-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return imageView;
}

-(void)scrollViewDidZoom:(UIScrollView *)scrollView {
[imageView setCenter:CGPointMake(scrollView.center.x, scrollView.center.y)];
}

-(void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale {
}

问题是:当我缩小图像时,它居中,但是当我放大时,图像移动到左上角。

我的代码哪里有问题?

4

1 回答 1

3

答案是全部删除scrollViewDidZoom:并添加:

[self centerScrollViewContent];

方法实现:

- (void)centerScrollViewContents {
CGSize boundsSize = self.scrollView.bounds.size;
CGRect contentsFrame = self.containerView.frame;

if (contentsFrame.size.width < boundsSize.width) {
    contentsFrame.origin.x = (boundsSize.width - contentsFrame.size.width) / 2.0f;
} else {
    contentsFrame.origin.x = 0.0f;
}

if (contentsFrame.size.height < boundsSize.height) {
    contentsFrame.origin.y = (boundsSize.height - contentsFrame.size.height) / 2.0f;
} else {
    contentsFrame.origin.y = 0.0f;
}

self.containerView.frame = contentsFrame;
}
于 2012-11-01T20:30:17.097 回答