Why are some iOS assets not showing at retina resolution? - ios

In one of my projects, many built-in assets, such as the clear button in UITextField or UISearchBar objects, the UITableViewIndexSearch image, and the activity indicator in the status bar set by UIApplication.sharedApplication().networkActivityIndicatorVisible don't show at the correct resolution. I've noticed this on iPhone 6 and iPhone 6 Plus devices running iOS 8.4, as well as all of the simulators running iOS 8.4. I have other projects that don't show this issue.
Screenshots are here: http://imgur.com/a/7TMlE

I have experienced this as well, in my case the cause was various view controllers being created too early in the application life-cycle (in the init method of the app delegate, i.e. before didFinishLaunching had been called) and also before the creation of the initial UIWindow.
Moving view controller creation to didFinishLaunching, after the window has been created solved it.

Those are system elements, so that’s pretty weird. Try deleting and re-adding the simulators in the Xcode Devices window: Window → Devices or shiftcommand2.

Related

Xcode Project Settings Preventing TabBar at Bottom of iPhone X Models?

I have an old project that I've been working on and off on for about 4 years now - the project has gone through many upgrades of XCode versions from 6 to 10 (I'm now using XCode 10.2.1 with 12.2 SDK). The main problem I'm having with it is that it utilizes a Tab View Controller to switch tabs, and no matter what I do, I cannot get the tab bar to appear on the bottom of an iPhone X family device correctly: it appears much higher than it should.
To try and finally narrow down the problem, I've essentially temporarily "replaced" all code and storyboard items from the project to see if anything will move the tab bar to where it's supposed to (if I just create a blank new project with a tab bar controller, the tab bar does appear where it should). I created a test storyboard with just a Tab Bar Controller going to one navigation controller (no constraints have been put in). There is no viewController codes attached to them. I've replaced the app delegate with a "blank" app delegate so there are essentially no extraneous code or restraints there at all. And I still get the tab bar moved:
This happens on the simulator and the device, and there is no code or storyboard setting that's doing this (this same setup on a new project puts the tab bar in the right place).
I've looked around in the Build Settings and other properties that I may have missed to see if I constrained something years ago that may affect this, and didn't see anything.
Is there anything I should be looking for in the project settings that would do this?
I don't want to rebuild the project in a new project - there are many linked libraries, certificates, cocoapods, storyboard items, and I know it would be horrible to try and put it all back in one piece.
My Deployment Target is set to iOS 11, Devices: iPhone, Base SDK: iOS
Any help would be greatly appreciated!
This is usually caused by not having a correct launch image for the iPhone X. The easiest way to fix this is to tell the app target not to use launch images (from the app bundle or from the asset catalog) but to use the LaunchScreen.storyboard instead. (If you don't have one, make one; be sure to set it as a launch screen storyboard by clicking Use As Launch Screen and configure your target to point to it. Examine a plain vanilla new project to see what I mean.) You might not want to keep things that way in the long term but at least it will allow your app to launch to the correct size on all devices.

IB Storyboard for App Extensions: iPad Icons Not Present, Sizes Don't Change, Orientation Not Working

I need to update a 3 year old iPhone-only, portrait only (NOT universal) camera/photo app that worked with iOS 8 that contains a Share extension that now (with 10.0???) crashes at times (but works many other times), and I'm trying to debug the issues and update to iOS 9.0.
The first issue I found and fixed was the lack of Privacy strings for access to the camera and photo library.
But I also found that the extension does not work with Photos on an iPad with layout issues (in the Simulator so far). As the docs say, extension targets must be made for iPhone/iPad and my build setting for the target extension are set to 1,2, and I use Auto Layout.
The storyboard, the Extension scene, a View Controller Scene, all view controllers, views and subviews all are set for Auto Layout as well as Safe Area Layout Guides, but the only devices shown in IB are iPhones with no iPads available, when selecting other devices no change is seen in size, and the iPhone is constrained to portrait mode.
I've tried setting the main app as Universal, allowing every orientation, building, and still no iPad icons in IB to test the UI for the extension (and trying to get Landscape mode in IB doesn't work either).
Is there a way to get IB to show and allow iPads/iPhones, particularly iPads, and change orientation during development for app extensions?
Selecting "Use Trait Variations" made the iPad icons appear.

Xcode/iOS Simulator not showing the app on fullscreen

I had this problem after I updated my Xcode to version 7.0.1
when I run the app on the simulator the bottom part of the app is not showing!.
this is screenshot of the simulator:
https://www.dropbox.com/s/e8cn14mxl7zgk58/Screenshot%202015-10-06%2009.49.25.png?dl=0
You are running your app from xcode 7. You can try it with simulator of iOS 9.0 SDK. That might work for you.
or otherwise check with your launch images. whether you have added launch screen for iPhone 6 or not in image assets.
I've had this problem when i didn't provide the correct launch screens for iPhone 5 (In your case iPhone 6). Check that, and if you can, i recommend using a xib for launch screen.
Sometimes It happens due to unordered items in Document Outline.
Make sure,It should follow this sequence in document outline.
1) View Controller Scene --> Top layout guide --> Bottom Layout guide --> View --> Navigation item.
2) First Responder
3) Exit

Window's root view controller is not Split view controller

I am trying to modify my existing app to use a split view controller. I've followed the sample master/detail project structure by adding a split view controller into my storyboard, made it the initial view controller and everything seemed to be working fine, until I tried to run the app in an iOS 7 simulator. All of a sudden when I hit my breakpoint in application: didFinishLaunchingWithOptions self.window.rootViewController is now the type of my master view controller, not the split view controller itself.
I thought maybe then I just need to get the split view controller off of the root view itself and tried rootViewController.splitViewController but that is nil. I must have missed some set up step in enabling this split view controller, but I have no idea what it was.
It is because UISplitViewController isn't supported in iPhone in iOS7, only in iPad.
If you run your code in iPad iOS7 you will see your UISplitViewController.
Only in iOS8 Apple added support for iPhone as well.
So this ended up being a pretty obscure issue. It seemed to be caused by the way that the iOS 8 SDK and Xcode 6 handle storyboards and size classes. I intend to file a bug report with apple but the repro steps to get this to present are simple:
Create a new master/detail application
Set deployment target to below 8.0 (7/7.1 works)
Change application type from "Universal" to "iPad"
You have to comment out this line from the generated app delegate, it will crash in an iOS 7 target:
navigationController.topViewController.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem;
Run on iPad simulator for iOS 7.1
The fix to this issue is to disable size classes on the storyboard. I theorize that the way that Xcode 6 and the iOS 8 SDK are handling size classes for iPad versus universal app builds causes this to not work on iOS 7 targets, but turning off size classes fixes the issue.

UIButtons are greyed out when view is re-loaded (iOS 7.1 simulator)

I've set my Deployment Target to 7.1+ and downloaded the iOS 7.1 simulators for xcode6. When I test the app on a '7.1' device, anytime I navigate back to a view that has already loaded, all the user elements are grey instead of blue.
The bug is between the initial table view and a child table view. How I navigate out of the child view doesn't affect the bug (either saves or discards changes made to core data). The UIButtons are still enabled, it's just as if the color were set to grey.
I'm not sure what code would be worth posting, I'm assuming its something basic? I originally set the deployment target to 8.0. I have since reset the launch image to support the 4" screen but that's about it.
Initial View
Second Load
Thank You!!!
I've seen similar issues with modal presentations in the simulator. I'm bet your problem doesn't manifest on an actual device.

Resources