设置UIScrollView的minimumZoomScale会更改UIImageView的帧原点

时间:2013-08-06 00:23:37

标签: iphone ios uiscrollview uiimageview

我正在尝试实现一个简单的控件,以允许用户放大和缩小图像。我在UIScrollView中有一个UIImageView。另外,我想防止用户缩小太多以至于图像的宽度或高度小于滚动视图的大小。这就是问题所在:当我将minimumZoomScale设置为合适的大小时,图像会出现在一个奇怪的位置。这是我配置滚动视图和图像视图的代码:

- (void)openNewImage:(UIImage *)image
{
    _originalImage = image;

    // Reset scroll view's zoom scales
    // (must be reset before setting the image to the image view)
    self.imageScrollView.zoomScale = 1.0f;
    self.imageScrollView.minimumZoomScale = 0.01f;

    // Set scroll view's content size to allow scrolling
    self.imageScrollView.contentOffset = CGPointZero;
    self.imageScrollView.contentSize = image.size;

    // Set image and resize image view to image size
    self.imageView.image = _originalImage;
    self.imageView.frame =
        CGRectMake(0.0f, 0.0f, image.size.width, image.size.height);

    [self.imageScrollView zoomToRect:self.imageView.frame animated:YES];
    self.imageScrollView.minimumZoomScale = self.imageScrollView.zoomScale;
}

最后一行导致问题,因为如果我将其评论出来,事情会出现在应有的位置,但用户可能会缩小太多。在尝试调试问题时,我发现最后一行导致图像视图的帧原点变为非常小的负数,如-1.11015e-06而不是0.如果我注释掉最后一行,则图像视图的帧原点是0.我想知道这是否会导致问题,尽管这个小的负数实际上是0。

0 个答案:

没有答案
相关问题