我正在开发iOS应用程序。我是iOS开发人员的新手。我在这款应用中使用了图片视图。图像的大小会有所不同 - 它不是静态的。它在视图中居中,并始终是屏幕的宽度。高度会有所不同。我覆盖了图像上方的文字。
我当前的代码捕获整个屏幕截图,减去导航和工具栏。如何修改现有的保存图像功能,仅捕获正在显示的图像而不是全屏?
func generateImage() -> UIImage
{
// hide toolbar and navbar
toolBar.hidden = true
navigationController?.setNavigationBarHidden(true, animated: false)
// Render view to an image
UIGraphicsBeginImageContext(self.view.frame.size)
view.drawViewHierarchyInRect(self.view.frame,
afterScreenUpdates: true)
let img : UIImage =
UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
// show toolbar and navbar
toolBar.hidden = false
navigationController?.setNavigationBarHidden(false, animated: false)
return img
}
答案 0 :(得分:0)
您提到您正在使用UIImageView来显示图像。然后,您已经显示了截取屏幕截图以访问UIImage对象的代码。
我可能在这里很困惑,但UIImageView类有一个名为image
的属性,它将为您提供当前正在显示的UIImage。为什么不抓住它并在任何需要的地方使用它?
let myImage = myImageView.image
将myImageView
替换为UIImageView
内实际UIViewController
个实例的引用。