我正在制作一个简单的照片查看器,可以进行缩放和平移。
所以在IB中我创建了一个包含UIImageView的UIScrollView:
然后我可以将其配置为在照片可用时立即存放照片:
- (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我现在已经想到了这一点;我会为后人提出答案。
答案 0 :(得分:0)
此代码对其进行排序:
// self.imageView.bounds = CGRectMake(0, 0, I.size.width, I.size.height );
self.imageView.image = I;
[self.imageView sizeToFit];
然而,我无法理解为什么这种改变是必要的。如果有人可以告诉我,我会接受这个答案(在这种情况下请粘贴上面的代码然后我可以删除这个答案)。