在重新定位到中心之前,UIScrollView中的UIImageView可见地转到左上角

时间:2014-05-14 16:46:09

标签: ios uiscrollview

我需要能够缩小图像,然后图像应该位于屏幕的中心。这是我的-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];
}

但是有一个问题。很明显,在居中之前,图像视图会转到左上角并且看起来不太好。任何想法如何让它停止发送到左上角,然后将其定位在中心?有时候,中心位置也不起作用,它只停留在左上角。

0 个答案:

没有答案