我需要能够缩小图像,然后图像应该位于屏幕的中心。这是我的-viewDidLoad
:
- (void)viewDidLoad
{
[super viewDidLoad];
[self.scrollView setDelegate:self];
UIImage *img = [UIImage imageNamed:@"IMG_0014.jpg"];
[_imageView setImage:img];
self.imageView.contentMode = UIViewContentModeCenter;
if (self.imageView.bounds.size.width < img.size.width || self.imageView.bounds.size.height < img.size.height)
{
self.imageView.contentMode = UIViewContentModeScaleAspectFit;
}
_scrollView.maximumZoomScale = 2.0;
_scrollView.minimumZoomScale = 0.1;
_scrollView.clipsToBounds = YES;
}
我已经实现了-viewForZoomingInScrollView:
来返回_imageView.Zooming
进出正常工作。然后我试图在缩小后处理重新定位。我使用了http://www.raywenderlich.com/10518/how-to-use-uiscrollview-to-scroll-and-zoom-content#comments中的- (void)centerScrollViewContents
。根据示例,我尝试在 - (void)scrollViewDidZoom中使用它:(UIScrollView *)scrollView:
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
[self centerScrollViewContents];
}
但它没有按预期工作,图像视图转到左上角。如果我实现了-(void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
,如果我从“属性”检查器中禁用“滚动”视图的“弹跳缩放”,它会按照我的意愿工作,并且图像视图会居中:
-(void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
{
[self centerScrollViewContents];
}
但是有一个问题。很明显,在居中之前,图像视图会转到左上角并且看起来不太好。任何想法如何让它停止发送到左上角,然后将其定位在中心?有时候,中心位置也不起作用,它只停留在左上角。