I've just built a site with four content blocks sitting ontop of one another to create a longish page.
Each block is the full width of the screen and the height of the screen and has a background image.
Now when the site loads it shows the first block and the background image displays correctly. When the user scrolls to the second block the background image does not display until the majority of the block is in the viewport then it will load.
Does anyone know why this would be the case, is it an iOS issue?
if you remove the "fixed" from the background declaration, it will work as you want it to.
Related
I have a Flutter screen is suppose to implement a photo-gallery which has a main big image and a grid view of many small images. When the screen is first displayed it displays the first image in the grid normally and shows it in the big picture and has the other small images at a darker color filter to show they are not the one currently selected. When the user taps on a different one the main photo is changed to a large version of the small image and which ever small image that was previously selected goes dark and the selected image is displayed normally.
This list of images also contain YouTube videos which are indicated by showing a translucent play icon in the middle of them. When the user taps on one of these it plays the video.
To implement this I made a base class called media and inherited the image and YouTube classes from media. I would like to have both classes have the same behavior in terms of highlighting and perform differently in terms of how they display and what happens when you tap on one. So far I can send a message from the images to the main screen to tell the main image to change but I am not sure how to get main screen to send a message to the previously highlighted small image and the to the be highlighted small image in order to change their highlighting.
I tried global keys but I could not get that to work. So, I was thinking of using a stream but I am new to Flutter and Dart so not sure how to get that to work. What can I try next?
I'm getting my app ready to submit to the app store and have been reading the guidelines on the startup screen. It seems apple prefer it to be something that makes it look like your app is already loaded even when it isn't.
I decided to use the background image of my app as the startup screen. That way the skeleton of the app will be there and the buttons and text will load in.
I used a copy of the image but renamed it to Default-568h#2x.png.
It works but when it launches, it has that default zoom affect but it seems to zoom in bigger than the actual image size and so doesn't transition nicely into the app.
Any ideas why this happens and what I can do?
Thanks
On the iPhone, the default.png image should contain the status bar (if it is visible in your app).
On the iPad, the status bar shall be left out.
Thus, the default image size should be (source):
This could be an issue with the status bar being included or excluded in the Default images. According to apple all the iPhone Default.pngs should have the status bars included while iPad should have the status bar left out. (Unless of course your application hides the status bar)
OK, I found a way around this.
I found out that the status bar at the top is 40 pixels for retina and 20 for non retina.
I then created a black background in the size of the full iphone 5 resolution. I then got my startup image (actually the background for my app) but resized it down 40 pixels vertically.
I then put this on top of the black background I created and lined up the bottom.
I then merged the layers and used this as the startup image. It worked perfectly, the startup image loads up and then my app opens up right on top of it perfectly aligned.
This question is similar to this one. My iPhone app allows the user to select the background image to use for the main screen. Therefore, depending on the background image selected by the user, the Launch Image screenshot (of the main screen) will likely display the wrong background image. When the main screen is finally loaded and the Launch Image is removed, it will be quite ugly for the background image to change suddenly to what the user has selected.
Does anyone have any suggestions on how to deal with this? Should I use some kind of splash screen (I thought I read in Apple's HIG that this was not allowed)? Or maybe I should somehow "transition" the user's selected background image into the view after the Launch Image is dismissed and the main screen is visible. Any thoughts?
If you really want to show a 'Splash' Image what you could do is forget about dynamically changing Default.png and use a simulated splash screen effect (simply a UIView or UIImageView covering the entire screen) which disappears after a number of seconds. What you need to ensure is you do the minimal amount of work to show the simulated splash screen and get it on the screen as fast as possible and then do any other computations later on whilst your image is shown.
There is no way you could change the actual Default.png without having the risk of your app being rejected by Apple.
Depending on how long your application takes to launch, you can use a black image as default.png. A "splash screen" isn't recommended but if there is no generic image possible and your app takes a significant amount of time to launch, it would be a better approach for the user's perspective as they would at least know that the application is launching.
Also remember that default.png is only shown when your app first launches, not when it resumes from multitasking (unless it has since been killed off).
See also this question Changing UIView when applicationWillEnterForeground fires which will be the next issue you face if your background image is set in preferences rather than within the app!
I have a sponsor logo on the launch image. Is there a way to dynamically change the launch image to rotate sponsor logos?
Thanks
The default image for an iphone app must be a fixed image file in your bundle. You cannot change it dynamically.
However, you can have a dynamic image that appears when the app loads after the launch image. You can set that up with animations or simply to select a random image each time.
According to Apple's HIG, Human Interface Guide, the splash screen is supposed to be used only as a placeholder to give the user the illusion the app is open while it completes it's startup process.
Apple will allow some use of the startup screen, but know they can and do have the right to reject your app solely on how you use it.
Like the previous answer stated, you could do anything you want after the initial startup screen has passed. Play a video, run an animation, or display a second view with your sponsored images.
And finally, I don't recommend doing this, but if you are determined to work something into the startup screen, you could try this.
The splash screen is hardcoded or set to 1 filename. Before your app closes, you could dynamically replace the hardcoded filename with a new file from a webservice or local storage, replacing the existing splash screen image. I haven't tried this, but it is more than likely possible. Just beware that it may not pass muster with Apple's approval process. Good luck.
As i needed different images on iPhone & iPad Splash screens, i followed below steps:
1. Add two UIImageViews
2. Set Width & Height constants for both UIImageViews as per your requirements.
3. Now select the iPhone UIImageView and set its Height Constraints Regular Regular (RR) height constant as 0.
4. Do the same for for iPad UIImageView and set its Height Regular Regular (RR) height constant as actual required height and set 0 to the Constant.
5. When you test it on iPhone the iPad ImageView will disappear and vice-versa will happen on iPad.
I need to use a website with quite a bit of content in my App via UIWebView.
When I scroll the page in Mobile Safari everything scrolls smoothly. Even if I scroll fast - the grey squared background appears but is rendered properly after a few moments (less then 0.5 seconds).
The same page in UIWebView scrolls jerkily if scrolled fast and doesn't show the grey squared background.
I guess Mobile Safari shows the grey squared background first and renders after that while UIWebview stops the scrolling until the part which will be shown is rendered.
How to I tell UIWebView to behave like Mobile Safari?
It is already being drawn on it's own custom tiledLayer. The problem is that it is by default attempting to draw itself on the main thread so it locks up when I can't be drawn. There is a private message you can call
-(void)_setDrawInWebThread:(BOOL)arg1
That will work BUT you will see empty space when you scroll too fast and it can't keep up with the drawing until it has time to catch up. They use:
-(void)_setDrawsCheckededPattern:(BOOL)arg1
in mobile safari to help with this.
Found a better solution. CGTiledLayer.
http://developer.apple.com/mac/library/documentation/GraphicsImaging/Reference/CATiledLayer_class/Introduction/Introduction.html