UIScrollView中的UIImageView:平移失败

时间:2011-11-18 13:17:05

标签: ios uiscrollview uiimageview camera pan

我正在制作一个简单的照片查看器,可以进行缩放和平移。

所以在IB中我创建了一个包含UIImageView的UIScrollView:

enter image description here

然后我可以将其配置为在照片可用时立即存放照片:

- (void) imageCaptureCompleted 
{
    {
        UIImage* I = self.frontCamView.stillImage;

        self.imageView.bounds = CGRectMake(0, 0, I.size.width, I.size.height );
        self.imageView.image = I;

        // - - - 

        self.scrollView.maximumZoomScale = 4.0;
        self.scrollView.minimumZoomScale = 0.75;
        self.scrollView.clipsToBounds = YES;
        self.scrollView.delegate = self;

        self.scrollView.contentSize = self.imageView.bounds.size;
    }

    [self hideCaptureView];

    UIImageWriteToSavedPhotosAlbum( self.frontCamView.stillImage, 
                                   self, 
                                   @selector( image: didFinishSavingWithError: contextInfo: ), 
                                   nil );
}

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

这几乎正常。这确实让我平移和放大。

然而,它太过分了!当它碰到照片的右边缘时它应该会反弹。但它的表现就好像照片是一个更大的黑色矩形。

我已经设置了滚动视图的自动调整遮罩,其方式与上图完全相同。

如何让它发挥作用?

PS我现在已经想到了这一点;我会为后人提出答案。

1 个答案:

答案 0 :(得分:0)

此代码对其进行排序:

        // self.imageView.bounds = CGRectMake(0, 0, I.size.width, I.size.height );
        self.imageView.image = I;

        [self.imageView sizeToFit];

然而,我无法理解为什么这种改变是必要的。如果有人可以告诉我,我会接受这个答案(在这种情况下请粘贴上面的代码然后我可以删除这个答案)。