6
我在一个项目,使自定义'Move and Scale' Controller
UIImagePickerController
。 (控制器出现的时候如果是imagePickerController.allowsEditing=YES
)如何动态调整scrollViewDidZoom中的contentInset?我最初设置UIImageView的contentInset在UIScrollview
我想在crop an UIImage
的作物长方形如下图。
而且我做了一些代码来设置contentInset
。
self.selectedImageView.backgroundColor = [UIColor redColor];
CGRect cropRect = [SKPhotoCropFrameView getCropRectFromOrientation:self.photoCropOrientation];
CGRect aspectFitRect = AVMakeRectWithAspectRatioInsideRect(self.selectedImageView.image.size, self.selectedImageView.frame);
CGFloat difference = fabsf(cropRect.size.height - aspectFitRect.size.height);
self.contentInset = UIEdgeInsetsMake(difference/2, 0, difference/2 + 20, 0); // 20 is status bar height
,这里是结果。
黑色区域是contentInset区域。
但是,如果我捏这个scrollView放大,发生了一些事情。
我想我必须做一些事情上
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
动态调整contentInset。我怎样才能做到这一点?请给我一些帮助:)
不是一个真正的回答你的问题,但你的做法是从苹果公司的不同,这就是问题所在。当图像完全缩小时,它们不允许向下滚动,当使用捏手势时,不能放大图像的上半部分。您需要将您的方法改为某个苹果使用的方法,并限制缩放区域或使用一些UI元素以编程方式执行缩放,这样您就可以完全控制缩放区域。 – Eugene 2013-04-10 16:29:24
@Eugene感谢您的评论。我认为我的方法与Apple的方法完全相同。我模仿默认的UIImagePickerController。我只想实现默认的UIImagePickerController'移动和缩放'控制器。你能解释为什么这与苹果更复杂吗? – 2013-04-10 17:13:21