Modify launch screen storyboard - ios

i've added a launch screen storyboard in my project. The storyboard contains a UIView with a UIImageView. The UIImageView shows a .png that i download from a server, and this image could be different every day.
I noticed that iOS cache the images created from the storyboard, but when i start the app with a different image, it shows the older one, and not the one i've downloaded.
The solution should be to change the storyboard to tell the OS that the splash is changed and it could generate new images.
But i don't able to tell the OS the storyboard is changed and it show always the same image.
I've tried to change the structure of the view controller adding some views.

The launch screen interface is supposed to be static, it is loaded before your code starts running. So there should be no way to dynamically change the images there.
Maybe someone will find an obscure solution for that, but my guess is that it's not possible right now.

Your project should contain a launch screen .xib file when you create it. You can simply edit the .xib to your liking. There's no need for a new/separate storyboard file.

Related

Abandon image cassetts for LaunchScreen.storyboard

So I have a fairly old app, last time worked on before iPhone X(s) was released. Always used Launch Images Source instead of Launch Screen File as seen below.
I am now having issues launching on iPhone X, as the screen size is assumed from the LaunchImage and there is NO launch image currently provided for iPhone X(s) in the "LaunchImage" file of .xcassets folder.
What is the most straightforward way to abandon using cassets in use of the new "Launch Screen File"? I have already tried creating this and using it, but had no luck getting an UIImageView to resize an image with said screen sizes on devices.
Im really looking for a straightforward guide for creating a LaunchImage.storyboard file that can adapt a launch screen image(full-sized image) to any device size.
What is the most straightforward way to abandon using cassets in use of the new "Launch Screen File"?
Change the Launch Images Source pop-up menu to "Don't use asset catalogs".
Make a LaunchScreen.storyboard if there isn't one, and point Launch Screen File at it. Make sure your launch image storyboard uses autolayout and is designated as a launch screen.
Now configure your storyboard's view controller using autolayout so that it lays out correctly on all devices.

How to setup launch Screen for universal correctly?

I have no idea how to solve my launch screen for iPad. I purposely created a new project which supports for universal. Same image name but it works for new project but my old project its not displaying out. it shows a white blank screen. May I know what is the reason?
Make sure that your LaunchScreen file is selected in the Project General Settings, like so:
Also, if you're using a storyboard for your Launch Screen, make sure there the only view controller is set as initial view controller., like so:
EDIT:
So if restarting the device did not work for you, try the following:
Re-adding the image into your Assets.xcassets.
Renaming the image.
And from this answer, https://stackoverflow.com/a/35481616/3231194, try unchecking the Clears Graphics Context of your UIImageView.
If you're using PNG image, make sure that Alpha is unchecked while saving the image.

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.

Change default app icon and loading screen in SpriteBuilder

I'm making a game with SpriteBuilder and cocos2d in Objective-C and don't know how to change the default loading image an app icons in SpriteBuilder.
Does anyone know how to do that
This isn't something you can change from within the Spritebuilder app. You simply do it by replacing the images that you'll find in the Source->Resourcessubfolder in your project folder. There you'll find all the different default.png images (for the different resolutions), and the icons (in the iconsfolder). All you have to do, really, is to replace them with your own designs.
my solution was to create a Launch Screen.xib file (File, New, File, iOS, User Interface, LaunchScreen). Then in the general settings for the project, where it says Launch Image Source, click "Don't use assets catalog." The last step is to set the launch screen file to your new .xib file, if you didn't change the name like I didn't, just type in Launch Screen.xib
Now if you launch your app, you should see that the loading screen is the same as the screen made in the launch screen.xib file.
The downside to this is that (I think) you can't use your own image. However most launch images tend to be a simple background color and some text, which is easily editable in Xcode.
The upside to this is that Xcode handles all scaling and aspect ratios, so you only need to set everything to percents and make one image, as appose to creating many different sized images.
Hope this helps.

Button is resizing when app is run either in the simulator or on an actual device

So here is my problem:
I am building an iPhone app (not universal) for deployment on iOS 7.0. In my very first View Controller I have two buttons. Both buttons are set as "Custom" and just contain a text png I made in Illustrator as the image for the button. My first button works great. It has both the #2x version and the normal version in the Image.xcassets folder under its own icon name. My next button work exactly the same way, except with different text file. It was created the same way. It looks great inside the storyboard, but when I run my app on either a simulator or an actual device, the 2nd button resizes itself. I have no clue how to fix this.
So far I have tried cleaning the project, restarting Xcode, reinserting the image file, playing with the button properties inside of the storyboard, and turning OFF auto layout.
Here is a screenshot of the simulator running next to the storyboard view in Xcode:
It sounds like the Attributes > View > Mode on the second button may be set differently, but you mentioned you have tried adjusting setting. Try deleting the button that is not working, duplicating the one that is working and changing the image in the duplicate to the second image.
To be sure there is not something unusual going on with your image (can't really imagine what), have you tried using the image that is shrinking in the button that seems to be ok?
You can also click on the "Resolve Auto Layout Issues > Reset to Suggested Constraints" to see if that helps. You can also try clearing all constraints and resetting them via that same menu.

Resources