我是一个完全的新手,在学习一本书的同时开始探索Xcode环境。我被如何在你打开一个应用程序时出现一个闪屏分散了注意力。内置的启动屏幕方法不会在屏幕上停留很长时间,所以我用Chat GPT来找出如何让它在屏幕上停留更长时间。它告诉我的是,只要出现第二个视图,就可以工作。但它就像是透明的,你可以看到下面的主视图。
我在默认情况下的ViewController中有以下代码:
import UIKit
class MainScreenController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let fakeLoadingView = FakeSplashScreen()
self.present(fakeLoadingView, animated: true)
}
}
class FakeSplashScreen: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
print("This did load")
DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) { // Simulate a 2-second delay
self.dismiss(animated: true) // Dismiss the fake loading view
//Continue to your app's main interface
print("I was dismissed")
}
}
}
字符串
然后在“Main”情节提要中添加以下内容,其中只有一个标签:
x1c 0d1x的数据
然后这个作为启动画面:
的
当它运行时,它似乎工作-“这确实加载”和“我被解雇”打印,所以它正在运行,但闪屏在它消失前看起来像这样:
的
自定义类的闪屏viewcontroller被设置为FakeSplashScreen,除此之外什么都没改变。
有人能解释一下发生了什么事吗?我做错了什么?
谢谢
1条答案
按热度按时间hmtdttj41#
第一个问题是,当你呈现一个视图控制器时,UIKit:
使用您发布的代码,您的
FakeSplashScreen
没有内容.甚至根视图也没有背景颜色。所以,如果这是你的“主”控制器:
x1c 0d1x的数据
你的
FakeSplashScreen
看起来像这样:的
我们所看到的是变暗的视图和略微缩小的主视图。
如果你在
FakeSplashScreen
中只把这个加到viewDidLoad()
上:字符串
它看起来像这样:
的
2秒后,黄色视图将“向下滑动”
有许多方法可以实现“启动画面”--这取决于您想要做的所有事情将决定最佳方法。
然而,一种方法是:
viewDidLoad()
中FakeSplashScreen
作为子视图控制器viewDidAppear()
中举个简单的例子:
的数据
看起来有点像这样: