I have an app that shows a series of UIImageViews on a ScrollView. The app starts by loading a 'splash page' then transitioning to the first image to be shown. The image for the splash page is actually loaded into the UIImageView nib in Interface Builder.
The problem I am having is that I am trying to reuse this app for a different set of images (the app is basically a template). This includes the splash page. I have done everything I can think of to replace the splash page image including, of course, modifying the view in Interface Builder and loading a different image. However, the previous splash page image still appears briefly when I run the app in simulator.
I have also tried: reviewing the .xib file text; removing the build directory from the app.
Looking for any suggestions on how to make this old image go away.
Edit: I have also deleted the 'old' image from the project. So it seems as if it is still being stored somewhere. Have also deleted the icons from Simulator.
isn't it the Default.png ?
Related
I have developed a straight iPhone/iPod Touch app.
A launch image is implemented for Retina displays as well as the lower resolution of the former generation devices.
Those images are displayed properly on the iPhone simulator as well as on several iPhone an iPod Touch devices.
However, since some days, when launched on an iPad (1) or iPad simulator one of the other images within the app is shown.
Apparently the image that is displayed wrongly, is one of two amongst ca. 70 images within the app. Those two images happen to be either
1. the first image in my xcode project groups hierarchy.
-or-
2. the first image in my project in alphabetical order.
I did not yet find a pattern of when 1. or 2. happens, so when the first image in the project's hierarchy of groups is taken or when the first in alphabetical order is taken. But it seems to be one of these two files only.
Any idea what I probably did wrong so that a wrong image is picked as launch image of this iPhone-only app whenever it is launched on an iPad?
Thanks in advance.
Cheers
Hermann
Try inserting an image named Default.png into Xcode. That's all, just drag it in. Xcode recognizes any picture named Default.png as the loading image. That should make it work.
To expand a little on Jack's answer - you can indeed use an image named Default.png which will automatically be used as a launch image for your app.
However,you can also customise the launch image for particular hardware and device orientations by using images of a particular size and name - for example, a 768x1004 pixel image named Default-Portrait~ipad.png added to your project will be automatically used as the launch image when you launch the app on an iPad in portrait orientation.
The use of these customised images is highly recommended, as it allows the launch image to be sized appropriately for the different shapes of screen (i.e. iPhone and iPad), and allows high resolution launch images to be used on Retina display devices.
For a list of these sizes and image names, see this page. The items of interest are the ones beginning with "Default"
All iPhone apps have a splash screen, or what Apple refers to as a “launch image”. It is the screen that is displayed immediately after you press your app’s icon on the home screen, while the app icons are sweeping away and your app is zooming into view.
Some apps opt not to display a splash screen and go for a black screen, which is the default behaviour when you create an app. Others display a wireframe of the app’s interface in order to look like it is loading faster. See Apple’s native apps such as Clock and Camera for good examples of this. The most common use of the splash screen (especially in games) is to present a company or game logo, as we do in Addicus:
Apple has made it so easy to set your splash screen that you don’t even need a single line of code to do it. Why, you don’t even need to change a setting. Here’s how to set your splash screen it in just 2 steps:
Add a file to your project’s Resource folder called Default.png.
There is no step 2. Take this time to reflect on how good life is.
And that’s it. Run your app and your splash screen will zoom into glorious view.
A couple of things to watch out for when working with splash screens:
Whatever image you give it will be scaled to fill the 320×480 resolution of the iPhone, so ideally you would use a 320×480-sized image.
If your iPhone app is running in landscape mode, you need to rotate the splash screen you use. For example, our splash screen is rotated 90 degrees to the right in the above image.
See more at: http://getsetgames.com/tag/launch-image/#sthash.GEXwuzsf.dpuf
Everything is in the title but I have to make myself clear :
I don't mean : how to automatically change the background of the app once it has finished launching.
What I mean is : when you first launch the app, before the first view is loaded by the iphone there is a black screen. Is it possible to change this black screen which I get when waiting for the first view to appear? I'd like to put a picture instead.
Thanks!
John
You need to set a Default.png and a Default#2x.png (for retina) and all the work is done for you. Or if you have payed to be a developer, download xcode 4 gm, and you can double click on the loading screen area and you can have it named what ever you wanted.
Just add a picture called "Default.png" to the project (size of the iPhone screen) and it'll automatically appear.
You can add Default.png and it's variations to your project. This image will be displayed as splash screen during application startup (before the first view is loaded).
Search for Application Launch Images at ...
http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/BuildTimeConfiguration/BuildTimeConfiguration.html
You must specify Launch image
http://developer.apple.com/library/ios/#documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html%23//apple_ref/doc/uid/TP40009252-SW9
The docs here explain the different types of launch images can should use:
http://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/BuildTimeConfiguration/BuildTimeConfiguration.html#//apple_ref/doc/uid/TP40007072-CH7-SW12
ok. I know how to display the splash screen on iPhone. Seems quite simple enough (i.e. setting the Default.png and calling "sleep" command).
But, is the application actually doing anything during this time? My app needs to go and fetch some data from Web before showing the app's first screen, but when I do the splash screen, it doesn't seem like it's doing this while showing the splash image.
Can I actaully make the app do something while showing the splash screen?
The best way would be to structure you application differently slightly differently.
Make your application display the Default.png when it starts it (ie. put a UIImageView onto screen), then start fetching your data.
Then either when you have fetched the data (or if you really must, once an NSTimer has expired, but it's a better user experience if you avoid a fixed time interval) change the view to be your real one.
Where you have got the idea that you need to call "sleep" while showing Default.png and there is nothing going on while this image is shown? Default.png is shown when OS is loading your app. You can not do anything during this time. In fact you have not got any control yet. It is handled by the OS. The idea behind this is to give user a feeling that app has loaded quickly, but actually your app is not completely loaded while Default.png is showing instead of a black screen by the OS.
You can manually add a view looking like your splashscreen after starting your app and handle the work in background. I would also add a hint to the user which indicates "loading data", because an app should start within 3 seconds.
If you read the Human Interface Guidlines, they're pretty clear that Default.png isn't intended to be a branding splash screen. It's meant to bring up a static "shell" of the initial page of UI so that the user experiences quick loading. So it's not at all designed or intended for what a lot of apps are using it for (including some of mine).
If you have your first screen that comes up be that image again, maybe with an activity spinner or status text on it, you can do whatever you need to do in the background of it, and then replace it with the first "real" screen of your app when you're done.
Generally all of the awakeFromNib calls in view controllers are done while the app is loading (ie has the splash screen up). When I put breakpoints in my apps at awakeFromNib calls, the breakpoints are hit when the splashscreen is up and the app is loading. So everything you do in
those calls will be processed while the loading screen is up.
Is it possible to make the iphone app splash screen pick up a random image or text? So that it is different every time (e.g. display tips)? If so how?
This is not possible. The Default.png file in your application is always the "splash screen". To try and alter it after the application has been built would alter the signature of your application, and it would not launch the next time it was run. (Assuming you can write to files within your application bundle, which I have not tried.)
It is true that you cannot alter the splash screen, but you can present a view with whatever you want in it. Don't include a Default.png image in the bundle. Then in your app delegate, instantiate a view controller and add it's view as a subview to self.window. Then you need to dismiss this view, either based on a timer, or the completion of your startup processing, or a user tap, etc.
It is worth noting that Apple discourages using a splash screen, and recommends that you just get the UI up and working as fast as possible. If you must have a splash screen, you can display something that looks like your working app to create the illusion of a responsive UI, and remove that as soon as your UI really is responding.
I'm using the Utility Application template to build my app.
Having a hard time getting an image to show up as the app launch. (I'm having this difficulty with all the templates basically)
Basically, right now when the app launch, it starts with a black background and it takes a second or 2 before the content appears.
However, I see that some apps has an image as it opens up. How do they do that?
I tried adding it to the "UIWindow" and have it set to "visible at launch". It doesn't quite work as expected. (i.e I think it goes behind the views since it is visible only when the views are flipping)
Thank you,
Tee
You need to add Default.png image to your resources directory. That should do the trick.