LaunchImage 持久化

LaunchImage persistent

使用 Xcode 7 我想创建一个带有 UIWebView 的小应用程序。 此应用程序必须从所有设备 运行 它。 我在资产中使用 "New iOS Launch Image"。 但是当 "Launch" 终止时,在加载 WebView 之前有一段等待时间(因连接速度而异)。 这段时间我想"Launch Screen"继续坚持使用该类型设备的Image。

你能帮帮我吗?

您不能按照 apple 的建议增加启动画面的时间,但您可以做一些让用户感觉启动画面仍然存在的事情。 你可以这样实现:

我假设启动画面后加载的第一个屏幕是 WebView 屏幕。在界面生成器中的 WebView 上添加 UIImageView 并在 ImageView 上设置启动画面图像。现在为这个 imageView 创建 IBOutlet 并在 webview 提示您它已加载到其委托方法中时将其设置为隐藏 属性 为是。不要忘记在界面生成器中设置 UIWebView 的委托。

class WebViewController: UIViewController, UIWebViewDelegate {
    @IBOutlet var UIImageView: imgThumbSplash!


    override func viewDidLoad() {
        super.viewDidLoad()
        imgThumbSplash.hidden = false
    }

    func webViewDidFinishLoad(webView: UIWebView){
        imgThumbSplash.hidden = true
    }


    func webView(webView: UIWebView, didFailLoadWithError error: NSError?){
         imgThumbSplash.hidden = true
    }

}

我用这段代码解决了它:

extension UIImage {
    convenience init?(fullscreenNamed name: String)  {
        switch UIScreen.mainScreen().bounds.size.height {
        case 480: //iPhone 4/4s
            self.init(named: "\(name)-700@2x.png")
        case 568: //iPhone 5/5s
            self.init(named: "\(name)-700-568h@2x.png")
        case 667: //iPhone 6/6s
            self.init(named: "\(name)-800-667h@2x.png")
        case 736: //iPhone 6+/6s+
            self.init(named: "\(name)-800-Portrait-736h@3x.png")
        default:
            self.init(named: name)
        }
    }
}

我为正在使用的设备屏幕接收 "LaunchImage" 正确的图像。