在所示图像中,方 block 显示了 UIScrollView
,它显示 UIImageView
。在这种情况下,用户可以通过平移和捏合来放大或缩小图像。
当用户平移并捏合到所需的正方形后,如何将仅在
UIScrollView
中显示的结果内容裁剪并保存到UIImage
中,并保存?忽略其余图像内容将
UIImageView
加载到UIScrollView
中时,如何限制纵向图像,使图像的宽度与 ScrollView 的宽度匹配?或者在横向模式下,图像的高度与 ScrollView 的高度匹配,但永远无法在 UIScrollView 中显示任何空白?
我对问题第二部分的尝试如下:
实现了 UIScrollViewDelegate
委托(delegate)
self.scrollViewForImage.delegate = self
self.scrollViewForImage.addSubview(self.imgSelected)
self.scrollViewForImage.maximumZoomScale = 2.0
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return self.imgSelected
}
最佳答案
这尚未经过测试,但通过从完整的 UIView
创建图像进行了重构,效果非常好。
我认为既然你知道 UIScrollView
的内容矩形,我基本上添加了传递整个 View 。如果它需要调整 CGRect
值,请告诉我,我会更新它。
func createImage(_ rect: CGRect, fromView:UIView) -> UIImage {
UIGraphicsBeginImageContextWithOptions(CGSize(width: rect.width, height: rect.height), true, 1)
fromView.layer.render(in: UIGraphicsGetCurrentContext()!)
image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
关于ios - 如何裁剪 UIScrollView 中显示的 UIImageView 部分并将其保存到 UIImage 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45046204/