Replacing Xcode 6 default Launchscreen with a Custom animation - ios

I have a animation (in swift) that I want to display while the app loads.
I am assuming I must override Xcode 6 default Launch Screen to do so.
My question is how do we override the default LaunchScreen in Xcode to allow a custom launch as in my animation.
Any feedback appreciated.
Thanks
Ciaran

First, Apple doesn't recommend having these types of launch screens. But to answer your questions, make the first UIController of your app have this custom animation and then after the animation is done, have it segue to your app's main screen.

Related

Adding a coded animation in Splash Screen iOS Swift 4 [duplicate]

This question already has answers here:
how to add animation to launch screen in iOS 9.3 using Objective c
(5 answers)
Closed 3 years ago.
I've been trying to add one of this coded cool animations I found https://iosexample.com/fancy-and-beautiful-loaders-for-you-awesome-apps/ in my launch screen (splash screen) when my app first starts. My intuition was to create a LaunchScreen UIViewController class, link it to the LaunchScreen.storyboard, and insert the code there. Unfortunately I haven't found much documentation on that and I've read that apple does not allow to run code on launchscreen. Do you know what could be a possible solution to this? Thanks
use Main storyboard ViewController to splash add animation on it, if want like that then go in targets -> General -> Deployment Info -> set Main Interface to Main Storyboard because you need to remove launch screen and also set in launch screen file..
Thanks hope it works!

iOS Xcode LaunchScreen Storyboard not displaying

I'm trying to use Xcode's LaunchScreen storyboard as my launch screen? All the questions that have previously been asked about this refer back to the old launch image or .xib method - trying to do it now with the new LaunchScreen storyboard that Xcode automatically generates instead. I've selected the LaunchScreen storyboard as my launch screen file in my Deployment Info:
The storyboard itself confirms that it is set as the launch screen in it's file inspector.
And the info.plist file reflects this as well.
And yet, it doesn't work. The LaunchScreen storyboard never shows - it just goes straight to the first screen in my main storyboard. Using Xcode 7.2 and deploying to iOS 9.
Enable these two settings for the LaunchScreen.storyboard
If you are using xcode 11.2 you'll need to remove the app and execute it again to see the launch screen. I have to do this every time I modify the launch screen in order to see the new changes.
Another thing to make sure is that Launch Screen File is set to Launch Screen.storyboard
**Delete the app from the device. Re-run. **
In my case I had all the suggested settings set correctly but continued to have the original blank launchscreen. In the spirit of AmJa's suggestion regarding a "cache" problem, I deleted my app from my device and reinstalled. Reinstalling did the trick for me on both my devices and simulators.
In case anyone else runs into this issue, I resolved it by simply deleting the ViewController on my LaunchScreen storyboard (leaving me with an empty storyboard), creating a new ViewController and resetting the Storyboard entry point to that new ViewController. There may be some sort of bug with XCode 7.2 with respect to the LaunchScreen storyboard and default entry point into the auto-created View Controller, but then again, I've tried replicating this 3 times and it hasn't ever repeated itself, so maybe not.
In storyboard, in ViewController scene, I had to check Is Initial View Controller for storyboard to be seen as Launch Storyboard.
Suprisingly this is not checked when you add first View Controller. Xcode 11.
Just in case it helps someone.
Scenario, I created my new project and copied a old Launch Image from another project. And then started getting the launch image but when I wanted to change it to new image then still i was viewing the old image it was stuck for ever as launch image no matter what I do.
Then I reset my Simulator and restarted my iPhone and there you go I stared getting the new image. This looks like that somewhere in the documents or cache the devices store the old image until you reset the phone.
Thanks
As #abanet, mentioned in his answer, anyone who uses Xcode 11.2 and above, they have to delete their app and launch it again to see launch screen changes. It's not reflecting immediately. It looks like a bug from Xcode definitely not an intension.
How to fix for Xcode 11.0 and above:
Do this: https://stackoverflow.com/a/41287094/2190175 if you haven't already, and after that:
Delete app from device / simulator
Restart device / simulator
Reason: Launch Screen part of storyboard is cached during development and doesn't change until you remove app from device / simulator and reinstall it completely.
Other solutions didn't work for me, but this did:
Toggle on and off Device Orientation (e.g. support Upside Down) and Hide Status Bar in General.
I'm not sure which one did the trick, but it's working now.
If you don't see anything and your Launchscreen.storyboard only has an ImageView in it, then it might actually be showing the storyboard but not the image. Try putting a button in it or something. I've discovered that my Launchscreen.storyboard is actually showing but won't show any images and I don't know why.
The issue can be also that the "LaunchScreen.storyboard" is not added to this target.
To fix this open "LaunchScreen.storyboard" then press on "File Inspector" and under "Target Membership" add it to the needed target.
I tried everything mentioned here, the only thing that worked for me was creating a new LaunchScreen file. I'm using Xcode 12.1
(Don't forget to update the reference in the targets settings)
I was banging my head against a wall with this since Xcode 10.1 does not include a launch option for the new 11" iPad Pro when you create a new iOS Launch Image set, and without it, the iPad Pro doesn't display correctly, leaving me no choice but to get this working with a Launch Screen storyboard.
I tried combinations of so many things, but I wanted to post what ended up making it work 100% of the time (which was, in fact, a combination of a number of things).
As you have no doubt read, for the UIImageView within the Launch Screen storyboard, you should NOT include the extension (.jpg or .png). So many posts say that, but leave out that the reason is that you should create a new image set within Images.xcassets (NOT Launch Screen image set, but just image set) and name it whatever you want (for instance, "Launch-Default"). Then, drag and drop the desired .jpg or .png into the new image set. You will then use the name of that image set within the UIImageView in the storyboard and everything should work fine (the image should even show up inside of Interface Builder).
Also, within the General settings for the project, make sure to set the Launch Screen File to your new storyboard.
You need to add App orientation specific Launch Screen.
LaunchScreen Portrait: https://app.box.com/s/hfoeuvsy68iu913keb8p5hs1z9fdz3jk
LaunchScreen Landscape : https://app.box.com/s/o9q5nkrvk2ewdh57oiiar85zf658olgj
Drag LaunchScreen.storyboard & LaunchScreenBackground.png to Xcode sidebar. Then specify LaunchScreen in Xcode General page. See attach image
In my case, the problem was that the image for the logo was taken from a different target. Make sure that the image is from the main target of the application, and reset the simulator via menu Device/Erase All Content ad Settings...
In my case a few image views cover the whole parent view of the launch screen (e.g. pinned to the view edges). I had to uncheck the Resize view from NIB in the Attribute inspector for the launch storyboard and finally it worked for me (just do not forget to manually delete the old app from the simulator)
In my case the background color of the view (full screen) was set to a "missing" color literal! After trying all above of course ;(
A jpg image does a problem change the extension to png or use another png image
Worked like a charm for me
in xcode9 swift4 LaunchScreen storyboard, use .jpg image & uncheck clear graphics context for imageview. it's absolutly working.

Black Screen at the start of iOS swift app

i have a problem. when i launch my app there is a black screen viewed for a seconds then the launch screen appeared.
my splash screen isn’t the default one. i used view controller because my splash had an animation.
i searched for a solution, and i get this on:
Black screen before my splash screen loads iphone
but it didn’t worked
any help please?
thanks
Have you selected your Launch Screen in your target's App Icons and Launch Images ?
Edit: If you don't use any launch (splash) screen or image then, a black screen is the default behaviour before loading your view controller.
I faced same issue but my solution is different,
I've made an extension of UINavigationController to make UINavigationBar clear.
So,the problem is , I was doing some R&D on that code and unknowingly put a method
open override func loadView() {
super.loadView()
}
and from that time, I started facing this issue.
My advice, please double check that you haven't don't something like that.
I had a custom splash screen to launch. But the Launch Screen file was pointed to Default LaunchScreen.storyboard. Replaced that with my original custom splash, the issue fixed

iOS Launch screen code not running

I heard about the new feature which xcode 6 brings, that allows you to make a storyboard as a launchscreen.
Now..
Is there a way to control UI elements on the launchscreen story board via a viewcontroller?
(to show a loading screen or something)
I tried it, I simply did a println("Here's the view loaded on the loadingscreen") in the viewdidload on the controller which is referred to the view in the launchscreen story board, but there's no output at all..
What am I doing wrong?
You're not doing anything wrong.
No code is associated with the launch screen. You can't run any logic. It is purely there so that you can use AutoLayout to layout the launch screens for different sizes of device.
You can't specify any class to launch screen and run code there. The storyboard file is only an alternative for multiple splash screens (Launch images). You can use a single storyboard/xib file based launch screen for different iOS platforms and orientations (You can handle that using Auto Layout).
The major point that you need to remember is, at that point the application is not completely launched.
So viewDidLoad or any view life cycle methods will not be invoked.

ios 7 support for existing iPad app

I have existing iPad app supporting iOS 5 and 6.
Can anybody help me to list down item that I need to take care while supporting iOS 7?
One thing I noticed that in existing code ((UITableView*)self.superview) in UITableViewCell doesn't work. superview of UITableViewCell is UITableViewWrapperView that need to be fixed in existing code.
The things are:
1. Navigation bar height and view style are different
2. Status bar is transparent in iOS 7 as in iOS 6 it was opaque.
3. Small thing is about the tint color. By default it is light blue in iOS 7.
4. Button borders have been removed.
Issue's i have faced while running the app in IOS 7.
Status bar issue (view controller get overlaps 20 pixel.)
FixForStatusBarIssue
Customize alert view won't work in IOS7. (We can't customize the alert view in IOS 7.)
My Fix -> You need to customize the view exactly like u want because you can't customize alert view in IOS7.
Issues related to threads.
My Fix -> Use dispatch_queue(GCD with delay) in case of UI not responding (Presenting a view controller from background thread.)
Zbar sdk memory leaks while presenting and dismissing the SDK (more than 5 times app getting slow.)
FixForZbarMemoryLeakIssue
this are the issues i have faced. fixes i have suggested working fine for me. You just use it if you need hope it will work.
Apple's iOS 7 UI Transition guide
Read descriptions of every single element you used in your app.
And be aware of the style and position of the bars (navigation bar/tab bar/tool bar...).
iOS 7 has changed a lot in view hierarchies, you can use Reveal to make things easier.

Resources