Starting with the iPhone 4S UIToolbar blurs the background. However the user can manually disable blurring in the Settings under General > Accessibility > Increase Contrast > Reduce Transparency.
Can I programmatically find out if the iPhone actually does use blurring?
The reason is I'd like to adjust the background and barTintColor in case of blurring being disabled or unavailable.
Related, for the "Darken Colors" setting I found a hack to detect it. I'm looking for something similar for the blurring as I'm not aware of a public API for this.
It's possible to check user's Reduce Transparency setting under iOS 8 with: UIAccessibilityIsReduceTransparencyEnabled().
As for the devices running iOS 7, blur isn't supported on iPhone 4, iPad 2 and 3 (I'm not 100% sure about iPad 2).
Related
This question already has an answer here:
The keyboard in my iOS app is too tall on the iPhone 6. How can I adjust the resolution of the keyboard in XCode?
(1 answer)
Closed 5 years ago.
In our iOS apps, I have seen that if we leave out certain launch images sizes, that the screen appears as if it is scaled up from a lower resolution device.
When this happens, the devices also display a taller keyboard with chunkier looking text.
When built in on my iPhone 6s+, from Xcode 7.x the keyboard in our app is 1 & 7/8ths" of an inch tall.
Looking at Skype, Slack, Waze, Messages, on the same device the keyboard is 1 & 3/8ths" tall.
I'm using whatever the standard keyboard is when our app's text fields are tapped on.
I have seen that this can be caused by missing launch images at the target device's size, but I'm not sold that this is the only cause. Does anyone have any insight why an app would appear at a lower resolution than what is native to the device?
Is there a known issue related to launchImages or some other factor that might be causing this?
In some of my testing, at one point I got the app to launch as expected at the correct size after switching full size retina launch images. This may have been fixed by building under Xcode 8.x, but I'm not sure and we can't do that yet because of other limitations.
Thanks much.
It's related to Launch Images in assets because when iPhone 5 came out first, XCode had this functionality to add certain launch image sizes to zoom in the UI of smaller screens and make it compatible to iPhone 5's screen. This was called Branding when I worked on it to make app compatible to bigger screen in a short time.
But it isn't the preferred way and you should avoid using Launch Images, use Launch.xib instead to create your Launch Screen. You can also use Launch.storyboard, whatever you prefer. It won't zoom in the Keyboard or other UI aspects then.
Hope it helps!
I just recognized that I can see thru the iOS Simulator if an UIView is defined with (semi-) transparent content. But I can not make a screenshot of it, on the screenshot the effect is gone.
The (custom) navigation bar on top has alpha set to CGFloat(0.9).
Here a screenshot taken with an iPhone 6:
Zoom in and you can see thru the simulator window on Xcode. I assume this is a bug, or is it intended behavior of the OS X transparency effects? If it is intended, can I turn it off?
Ok, I have found the problem. Actually it is not a transparency effect but a display problem. I am using an iMac 27inch with an IPS LCD display, which suffers heavily from "screen burning". Xcode is standing on this position for hours so it burned in into the display. That's why I can not make a screenshot - it is a hardware problem.
https://discussions.apple.com/thread/5255653?tstart=0
Yeah this is going to be a hardware / screen problem. Should not translate to your app.
This has been driving me nuts.
I have a toolbar on my iPAD application and its translucent property is set to 'YES'. I am doing this in my storyboard:
When I run on an iPad Air things look good. However if I run on an iPad 2 the toolbar is not translucent. I experience the same problem in the simulator and on an actual device.
This is also not a problem across different versions of the OS. IE no matter what OS I run (iOS 7 or iOS 8) its wrong on an iPad 2 but correct on an iPad Air.
Why????
Is there anything I can do to get a consistent L&F across these devices?
Translucency - which uses blur - is computationally expensive.
If you compare the control panel or notification menu between iPad 2 and iPad Air, - you will see that Apple has disabled translucency on the lower powered device as it can't really cope.
That applies to iPad2, iPad3, iPad mini and maybe some older iPhones and iPod Touches. Even higher-powered devices can give poor results if you over-use these effects.
If you need a completely consistent look and feel, you should resist using properties that take advantage of translucency and blur effects. Another option is to play around with view alpha, background colour and tint to get a semi-tranparent look on devices that don't support translucency.
For more information on device support for UIVisualEffect, which seems to coincide with 'translucency' property support on UI objects:
Check if device supports blur
Detect if device properly displays UIVisualEffectView?
I have an app that runs on IOS 7 and 8. On 8 I use UIBlurEffect with UIBlurEffectStyleLight which creates a beautiful vibrant blur. On IOS 7 I use IOS Blur library which seems very similar to UIBlurEffectStyleExtraLight in IOS 8. This creates a more fuzzy / white looking blur effect. Is there any way to make the IOS Blur (which is essentially just a UItoolbar overlay) on IOS 7, look more like UIBlurEffectStyleLight on IOS 8?
Thanks!
EDIT I was able to get an identical image by using Apple's UIImage+ImageEffects category and using applyLightEffect.
#import "UIImage+ImageEffects.h"
self.menu.image = [self.menu.image applyLightEffect];
Leaving this question open for now in case there are solutions that work for real time as well.
UINavigationBar was the best real-time blur solution available in iOS7, but it has its limitations (and from an architecture point of view is a pretty horrible roundabout way to just get a blurred background on your view). There are ways to create blur images using the Accelerate framework in iOS7, but you're not going to get real-time performance out of it, so if you're planning to blur something that is moving or changing, you're stuck with UINavigationBar.
You can change the tint of the UINavigationBar to make it not be so white, but you can't set it to a clear tint to get a more accurate pixel colour blur -- it's always going to be tinted with either white or black first before applying your tint colour.
I have been trying to solve this app icon color issue all morning. I am still experiencing this after going through both of these highly recommended photoshop/iOS design articles:
http://davidmckinney.com/blog/2013/12/31/designing-iphone-apps-how-to-setup-photoshop
http://bjango.com/articles/photoshop/
Here is the problem that I am having:
When creating my app's icon, the color that I see in Photoshop is the exact same color that I see in xcode's asset catalog. It is also perfect when I run the app on the iOS simulator.
However, when I run my app on my iPhone the app icon's color is always darker.
What's weird, is if I take a screenshot of my iPhone's screen and email it to myself, the color is correct! So for some reason the color is only darker when you are actually looking at the iPhone's screen.
Pardon my ignorance, but this is the first design I have ever done for an iOS app and I don't understand why this is happening or how to fix it.
EDIT: I am now using LiveView after reading this answer: https://stackoverflow.com/a/3597221/3344977
What's funny is no matter how hard I try I cannot get the color I see on my screen to appear on my iPhone screen. It's as if this shade of Pink I'm trying to use just isn't possible to render on an iPhone display.
This is because your iPhone and Monitor screens have different color calibrations (if that's the right term)
You're going to want to setup a color profile on your computer that matches the iPhone screens as closely as possible, and use that when developing icons.
for some reason the color is only darker when you are actually looking at the iPhone's screen
Consider turning up the brightness on your iPhone. Go to Settings->Wallpapers & Brightness to adjust it.
In any case, the issue isn't that the value of the color is changing on your device, it's just that that color value is being rendered differently.
Its because the resolution of your screen is different than your iOS device try it on other device