【问题标题】:Custom Splash Screen for iOS AppiOS 应用程序的自定义启动画面
【发布时间】:2016-12-09 10:13:12
【问题描述】:

经过一番谷歌搜索后,我发现弄乱默认的 Xcode 启动屏幕并不是让您的启动屏幕等待一段时间和其他东西的最合适的方法,因此我将新的视图控制器(名为 splash 的自定义类)添加到我的故事板和然后 2 秒后它会显示我的主要 UINavigationController 并且它不工作只是冻结在初始屏幕上

这是我的代码:

import UIKit

class splash: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        NSThread.sleepForTimeInterval(2.0)
        let vc = storyboard?.instantiateViewControllerWithIdentifier("mainmenu") as! UINavigationController
        self.presentViewController(vc, animated: true, completion: nil)
    }
}

【问题讨论】:

  • 我会重新考虑完全使用闪屏。你真的想让你的用户在使用你的应用之前等待 2 秒,只是为了展示一点品牌形象吗?
  • 嗯,这是客户要求我的朋友
  • 我完全同意你的观点,但同时默认的启动画面根本没有用,它出现的时间不到一秒!
  • 不幸的是我的朋友有时你不能对客户说不:)
  • @Mriyadh 您所说的“启动画面”不是“启动画面”,不要再称它为启动画面了。这是一个启动屏幕。它的唯一目的是给用户留下您的应用程序正在立即加载的印象。启动屏幕应该类似于应用程序将显示的第一个屏幕(没有内容),因此当应用程序打开时,它看起来就像在它出现在屏幕上之前就已加载。 (以地图应用程序为例)。为什么甚至在那里有品牌?用户已经购买/下载了该应用程序。他们知道它是谁的应用程序。这就是他们下载它的原因。

标签: ios swift splash-screen


【解决方案1】:

你想要做什么 - 是一个丑陋的黑客。 不要

您应该创建您的自定义Splash View Controller,其布局模仿您的默认初始屏幕图像,执行自定义动画(如果有),然后推送/呈现下一个视图控制器(在主线程上),或根据您想要执行的任何操作您的应用要求。

【讨论】:

    【解决方案2】:

    我已经使用执行选择器解决了它

    class splash: UIViewController {
    
    override func viewDidLoad() {
        super . viewDidLoad()
    
        performSelector(#selector(splash.showmainmenu), withObject: nil, afterDelay: 2)
    }
    
    func showmainmenu(){
    
        performSegueWithIdentifier("mainmenu", sender: self)
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-11
      • 2013-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-23
      相关资源
      最近更新 更多