我有一个名为overView的UIView:
overView.frame = CGRectMake(self.view.frame.width/25, self.view.frame.height/25, self.view.frame.width/1.3, self.view.frame.height/1.2)
字符串
我只想截取这个视图的屏幕截图,而不是整个屏幕。并使大小的截图:
(CGSizeMake(2480,3508 )
型
下面是我的代码:
UIGraphicsBeginImageContextWithOptions(CGSizeMake(2480,3508 ), false, 0);
self.view.drawViewHierarchyInRect(CGRectMake(-self.view.frame.width/25, -self.view.frame.height/25,2480,3508), afterScreenUpdates: true)
var image:UIImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext()
型
屏幕截图是所需的大小,但它采取了整个视图的屏幕截图,而不仅仅是“overView”。
7条答案
按热度按时间cxfofazt1#
要绘制一个视图,只需使用以下命令:
字符串
如果你想多次使用它,扩展可能会完成这项工作:
//快速4
型
//老雨燕
型
要说明这些参数的作用,请执行以下操作:
UIGraphicsBeginImageContextWithOptions()创建一个临时渲染上下文,在该上下文中绘制原始对象。第一个参数size是缩放图像的目标大小。“第二个参数isOpaque用于确定是否渲染Alpha通道。如果图像不具有透明度(即阿尔法通道)可以导致具有粉红色调的图像。第三个参数scale是显示比例系数。当设定为0.0时,将使用主屏幕的比例因子,对于Retina显示器,该比例因子为2.0或更高(在iPhone 6 Plus上为3.0)。
更多信息请点击此处http://nshipster.com/image-resizing/
至于draw调用,Apple Docs在此详细解释,here
d8tt03nd2#
Swift 4和iOS 10+
字符串
p1tboqfb3#
Alessandro的另一个答案,更简短和Swift风格:
字符串
u4vypkhs4#
对于屏幕短使用此解决方案。听到我可以完成如何使用
UIImage
拍摄屏幕短UIView
。字符串
vpfxa7rd5#
字符串
m3eecexj6#
Swift 4.x和iOS 10+以及回退解决方案:
字符串
ocebsuys7#
如果你不是特别需要
UIImage
,但UIView
就可以了,你可以用途:字符串
https://developer.apple.com/documentation/uikit/uiview/1622531-snapshotview