snapshotViewAfterScreenUpdates
全部标签 我正在尝试在我的iOS应用程序中获取屏幕截图图像。屏幕截图必须包含屏幕上的所有内容,包括状态栏,因此this等解决方案对我不起作用。我尝试了以下方法:overridefuncviewDidLoad(){super.viewDidLoad()//Waitforonesecondbeforetakingthescreenshot.Timer.scheduledTimer(withTimeInterval:1,repeats:false){timerin//Getaviewcontainingthescreenshot,shrinkitalittle,andshowit.letview=UI
我正在尝试使用以下代码创建一些复合UIImage对象:someImageView.image=[ImageMakercoolImage];ImageMaker:-(UIImage*)coolImage{UIView*composite=[[UIViewalloc]initWithFrame:CGRectMake(0,0,400,400)];UIImageView*imgView=[[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"coolImage"]];//Thisisavalidimage-canbeviewedwhendeb
如果您在尚未显示的View上调用[viewsnapshotViewAfterScreenUpdates:NO],您将获得:Snapshottingaviewthathasnotbeenrenderedresultsinanemptysnapshot.Ensureyourviewhasbeenrenderedatleastoncebeforesnapshottingorsnapshotafterscreenupdates.这通过将参数更改为YES来解决,这是有道理的。通过YES会影响性能,除非尚未显示,否则我不需要“屏幕更新后”。有没有办法知道何时传递NO会导致该错误,以便我只能在那种情
我正在尝试获取用户看到的整个屏幕的图像。以下代码应该可以工作,但它只能在模拟器中工作。我需要做什么才能让它在运行iOS8.1的设备上运行?UIView*snapshot=[[UIScreenmainScreen]snapshotViewAfterScreenUpdates:YES];CGSizeoutputSize=CGSizeMake([UIScreenmainScreen].bounds.size.width,[UIScreenmainScreen].bounds.size.height);UIGraphicsBeginImageContextWithOptions(outputS
我注意到运行它会导致View(或主窗口,不确定)在从iPhone5布局缩放的iPhone6/6+模拟器上运行时调整片刻(不传递iPhone6/6的启动图像)+):[self.viewsnapshotViewAfterScreenUpdates:YES];当您不能在那里传递“NO”时,知道如何让它工作吗?更新(7月13日):似乎不再在iOS8.4上重现。 最佳答案 因为它看起来像是一个Apple/API问题,所以我只是决定在需要传递"is"时不使用该方法。您可以截取View的屏幕截图(UIImage)并将其放在UIImageView中
-renderInContext:自出现以来就被广泛使用,但是它无法渲染OpenGL层,AVPreviewLayer(可能是因为它是一种OpenGL层)我仍然无法正确渲染CATiledLayer。iOS7引入了2个新的API来获取屏幕截图,一个是-snapshotViewAfterScreenUpdates:返回特定View(_UIReplicantView)和-drawViewHierarchyInRect:afterScreenUpdates:最后一个是-renderInContext的一种替代品,不幸的是它似乎具有相同的局限性。-snapshotViewAfterScreenUp