features - xcode version for ios 12
Ejecutar código en la pantalla de inicio (3)
Xcode permite crear una pantalla de inicio en archivos
.xib
través de Interface Builder.
¿Es posible ejecutar algún código con el xib, como en los controladores de vista habituales?
Sería genial si pudiéramos configurar diferentes textos / imágenes / etc. al iniciar la aplicación.
Estaba tratando de hacer lo mismo aquí. :)
Realmente me gustaron algunas de las aplicaciones, en las que hacen un pequeño texto dinámico de saludo e imagen cada vez que se inicia la aplicación, como "¡Te ves bien hoy!", "Hoy es viernes, un día maravilloso", etc. muy lindo.
Hice una búsqueda, a continuación se muestra cómo hacerlo: (Mi código es XCode 7, con un archivo launchscreen.xib)
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var customizedLaunchScreenView: UIView?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
application.statusBarHidden = true
// customized launch screen
if let window = self.window {
self.customizedLaunchScreenView = UIView(frame: window.bounds)
self.customizedLaunchScreenView?.backgroundColor = UIColor.greenColor()
self.window?.makeKeyAndVisible()
self.window?.addSubview(self.customizedLaunchScreenView!)
self.window?.bringSubviewToFront(self.customizedLaunchScreenView!)
UIView.animateWithDuration(1, delay: 2, options: .CurveEaseOut,
animations: { () -> Void in
self.customizedLaunchScreenView?.alpha = 0 },
completion: { _ in
self.customizedLaunchScreenView?.removeFromSuperview() })
}
return true
}
// other stuff ...
}
Simplemente haga lo que quiera mostrar, texto, imágenes, animaciones, etc. dentro del LaunchScreenView personalizado aquí.
Al final del lanzamiento, simplemente desvanezca esta UIView personalizada utilizando el cambio de valor alfa, luego retírela por completo.
¿Cuan genial es eso? ¡Me encanta!
Espero eso ayude.
No, no es posible.
Cuando se muestre la pantalla de inicio, su aplicación estará en estado de carga.
Incluso la aplicación
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
no se ejecutará por completo mientras se muestre la pantalla de inicio.
Por lo tanto, está claro que no tiene acceso a su aplicación, por lo que en este momento no puede ejecutar ningún código.
También estaba tratando de lograr esto. Intenté lo siguiente, me da un par de segundos de retraso, pero funciona para mí.
- Cree y establezca una pantalla de inicio en la configuración del proyecto.
- Cree un controlador de vista con clase personalizada (SplashViewController) y configúrelo como controlador de vista inicial en el guión gráfico.
- Agregue una vista de contenedor y configúrelo en pantalla completa.
- Establezca segue incrustado en una referencia de guión gráfico.
- Seleccione Storyboard Reference y configure la pantalla de inicio en la propiedad StoryBoard del inspector de atributos.
- Haga lo que quiera en SplashViewController (reproducir animación o verificación de sesión, etc.) y realice una segue cuando haya terminado.
¡Espero eso ayude!