在应用启动时,我直接在CGBitmapContext
上绘制内容,将其转换为CGImage
,然后将其设置为viewDidAppear
中的视图层。
它实际上非常快,但由于Apple需要在应用程序中添加启动图像,我添加了一个静态图像,显示屏幕看起来像启动图像。
然而,接下来发生的事情是,当应用启动时,启动图像会显示,但屏幕将在0.5到1秒后消隐,我认为由于viewDidLoad
启动而{{1} }开始运行,但在开始时,屏幕全部为空白。
然后在0.5秒之后,一切都会出现,但这会产生一个"闪光灯"白屏。
所以看起来至少有两个选项,分别是
只是让启动图像完全空白,但我不确定Apple是否会拒绝该应用,因为他们喜欢应用最初看起来像的静态图像"。 ..但我想知道初始图像是否显示得如此之快(0.5到1秒,他们还会介意吗?)
另一个选项是将所有绘图从viewDidAppear
移至viewDidAppear
,但我发现viewDidLoad
中缺少某些信息,例如viewDidLoad
在self.view.bounds
viewDidLoad
中,它会更改为{{0, 0}, {768, 1004}}
中的正确{{0, 0}, {320, 460}}
(正在iPhone 4S上进行测试)。
所以我认为某些视图信息尚未在viewDidAppear
中正确设置,这是一个两难选择。一种方法是检查它是iPad还是iPhone,并对viewDidLoad
值进行硬编码,但还有更好的方法吗?
答案 0 :(得分:2)
在viewWillAppear期间启动的后台线程上创建CGImage,然后就会有尺寸。
也许将viewDidLoad中的视图背景设置为与启动图像相同,这样当您绘制CGImage时,用户看不到闪烁。