截图在iPhone上迅速只有一个白色背景
一些背景:我只是试图做一个简单的程序使用xcode 6测试版7在迅速截图iphone后按下按钮。它在SpiteKit和游戏场景中完成。背景是一个随机的PNG图像和“hello world”默认示例文本。我编程放压能按钮(默认飞船图像的按钮)在gamescene didMoveToView功能使用下面的代码:截图在iPhone上迅速只有一个白色背景
button.setScale(0.2)
screen.frame = CGRect(origin: CGPointMake(self.size.width/4, self.size.height/1.5), size: button.size)
screen.setImage(playAgainButton, forState: UIControlState.Normal)
screen.addTarget(self, action: "action:", forControlEvents: UIControlEvents.TouchUpInside)
self.view!.addSubview(screen)
此项设置它与功能在屏幕上我的新闻,能键使用该下一个代码进行屏幕截图:
func action(sender:UIButton!){
UIGraphicsBeginImageContext(self.view!.bounds.size)
self.view!.layer.renderInContext(UIGraphicsGetCurrentContext())
let screenshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil)
}
所以这个代码采取截图,但是当我看着照片,只压按钮可以显示与图像的其余部分是白色的。图像显示如下:
下面,我想截屏应该是这样的,因为这是在屏幕的样子在模拟器(我只是用一些随机图像/文本作为背景):
有人能向我解释为什么截图程序是不是也考虑背景的图片,以及如何解决它?
我在网上看过,我还没有看到任何问题是解决我的问题。在线我看到一些类似的问题,并尝试了他们的修复:我导入了quartzCore,coreGraphics和coreImages,但没有修复。另外,我尝试使用ViewController并在其上设置一个UI按钮以使用IBaction来截屏,但仍然获得相同的白色背景图像。我试过不同的背景图片,结果相同。
我是相当新的编程,所以,任何帮助将不胜感激!先谢谢你!
你是否将背景设置为图案背景颜色? =>也许这不符合renderInContext
的预期。
在self.view
中呈现的背景图像是子视图还是其drawRect:
方法? =>如果不是,当然它不会被渲染。
获得的截图最简单的方法是用功能
UIImage *_UICreateScreenUIImage();
你必须先声明它,因为它的一个未公开的函数。我不确定苹果是否会接受一个包含此功能调用的应用程序,但我认为它会好起来的(我知道评论准则说你不能使用无证函数,但我认为他们不会在意这种情况)它可以在iOS 5 - iOS 8(我已经测试过,不关心iOS 4)上工作。
另一件应该工作的事情是渲染整个屏幕而不是一个特定的视图:
UIGraphicsBeginImageContext(self.view!.window!.bounds.size)
self.view!.window!.layer.renderInContext(UIGraphicsGetCurrentContext())
let screenshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil)
(请注意,我换成view!
与view!.window!
得到唯一的一个窗口实例。)
我发现了一个H液ere:http:// *。com/a/27764590/1139044 – Nicholas 2015-01-04 10:39:38
我想你可以在这里找到你的问题的答案:http://*.com/a/27764590/1139044 – Nicholas 2015-01-07 09:12:32