UIImageView
内有一个UIScrollView
,用户可以向下扩展然后保存它:
导航栏下方的区域和标签栏的顶部是UIScrollView
框架。
当用户点击完成时,图像将保存在相机胶卷中。这就是那里保存的(照片应用程序):
我不知道保存图片中的这个空白区域是什么。
这是保存图片的代码:
UIGraphicsBeginImageContextWithOptions(scrollView.frame.size, false, 0.0)
let rect = CGRectMake(0, scrollView.frame.origin.y, scrollView.frame.size.width, scrollView.frame.size.height)
self.view.drawViewHierarchyInRect(rect, afterScreenUpdates: true)
let image = UIGraphicsGetImageFromCurrentImageContext()
let imageData = UIImageJPEGRepresentation(image, 1)
let compressedJPGImage = UIImage(data: imageData!)
UIImageWriteToSavedPhotosAlbum(compressedJPGImage!, nil, nil, nil)
我要保存的内容正是UIScrollView
的可见区域。
答案 0 :(得分:0)
我必须使用CGContextTranslateCTM()
翻译矩形:
let screenRect: CGRect = scrollView.bounds
UIGraphicsBeginImageContext(screenRect.size)
let ctx: CGContextRef = UIGraphicsGetCurrentContext()!
CGContextTranslateCTM(ctx,0,-scrollView.frame.origin.y)
UIColor.blackColor().set()
CGContextFillRect(ctx, screenRect)
view.layer.renderInContext(ctx)
let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()