Using built in bar button icons - ios

In reading Apple's guide on BarButtonItems, I see that several bar button icons exist which are not choosable from the Attributes inspector in Xcode (in particular the large "chevron" which appears in 4 orientations.
I've searched for a way to access them, but cannot find one. Does this mean that they are internal and only accessible to Apple's own application and I'm not permitted to use them in my own application?

This are examples for the iOS Human Interface Guidelines. So they are on this page, to show
the similarities in size, detail, and weight produce a sense of
harmonious unity
Not saying, that they are available for the devs. If you want to use them anyway, you have to get and add the image files manually.
Especially the requested "chevron"s should be easily drawable.

You can extract UIKit artwork using the following GitHub project, which works beautifully.
https://github.com/0xced/iOS-Artwork-Extractor

Related

How to Update iOS Apps to Fit Larger Screen Size

I know this question might sound ridiculous, but please finish reading this thread before marking this as a duplicate question.
I've been searching for answers throughout the internet but can't seem to find a satisfying explanation & solution as I'm not very sure how things work & how to make a change.
Click me for example
In the image, the app on the left is 'un-optimized' and stretched while the app on right is 'optimized' and perfectly fit.
So how do I 'optimize' an old app to fit on larger screens, given:
• The app is built using Objective-C
• Some screens only have header(.h) & method(.m) files, meaning there is no XML Interface Builder(.XIB) files to see how the UI looks like without running it on the device.
I've tried using size classes for screens with.XIB files, but regardless of that, the app still appears to be stretched. Also, what about those that only have header & method files? Since there is no interface builder, I couldn't modify the UI in terms of size classes & constraints.
Is there a universal setting or something that I need to change and the whole app will be magically 'optimized'? Or do I have to configure a certain setting for each screen one by one?
Could someone explain to me in simple terms how this can be done?

Ios default icon for open view from list

In every ios app you can have a list that contains elements with subelements.
Tapping on the element will open a new page and you can usually press back to return.
This is indicated with a grey ">" symbol on the right.
Is this symbol downloadable somewhere? I know i can just type a > but it doesn't look exactly like the default icon used by ios.
I'm using Xamarin dialog and a standard RootElement embedded as a list item looks exactly like the default ios but i need to customize it with an icon placed left of the text(which is no problem except that i now lose the default > icon).
Googling for ios system icons, ios default icons and ios sdk did not yield the wanted result. I'm hoping that these icons are somewhere embedded on the device.
I hope you guys can help me out, thanks !
As far as I know there is no way to access a UIImage instance of the chevron during run time. Most likely there is private API for this, but I am not aware of it, and since it's private you are not allowed to use it anyway.
You could probably instantiate a cell that has the disclosure indicator as accessoryType and walk the view hierarchy to find it. But that will break easily, so don't do it.
The best way is to add an image and update it with every new iOS release.
There's the iOS Artwork Extractor which basically gets you every piece of artwork that is used in iOS.
The artwork you are looking for should be named UITableNext. (at least that's the name in iOS6, I don't have an extracted archive of iOS7 yet)
Strictly speaking you are violating Apples rules and their copyright if you use their artwork without Apples written consent.
As far as I know this has never been enforced, and lots of people do it, but it's good to keep it in mind.

How can I inspect elements on native iOS application

I am running an iOS native app on iOS Simulator and would like to inspect the elements on the app to get the ID.
Does anyone knows how this can be done?
Note: Please, this question is for iOS native App not Web based app!
Thanks
It sounds like you may be looking for something like Firebug or the Chrome Inspector for your native app? I'm not sure what you mean by "ID". Interface elements in iOS don't really have IDs the same way DOM elements have IDs.
You should check out the Spark Inspector (http://www.sparkinspector.com/), which allows you to see the views of your app and modify them at runtime - it may help you see what you're looking for. Full disclosure: I am the author of the app ;-)
There is a new app, called Reveal, that does an incredible job.
Not only you can check view's properties, you can also view all the app in a "exploded" 3D view, change the sizes and properties.
Specially for iOS 7, where the view controller starts from the beginning of the screen (and not below the navigation bar), it can be really useful.
You can download the trial at http://revealapp.com and decide which license you should get.
There are two Best ways for this -
Use Accessibility Inspector which is Apples's inbuilt tool so you don't need any other support .
As you will be using Xcode mostly for you code part, there is an option to play UI recording which capture all the actions and elements that you interact with on native app.
You need to inspect the App's Bundle.
Check this answer on stackoverflow, to get the appID: https://stackoverflow.com/a/8883166/933887
Appium has an inspector for ios applications.
This is the link for appium: http://appium.io/
and in this video you can see the inspector in action: https://www.youtube.com/watch?v=jQZTRz2W9xg

What is Apple's take on using hidden icons from UIKit

There is a project on GitHub (UIKit-Artwork-Extractor) that extracts images from UIKit. What is Apple's take on when using these images in your application. I'm planning to use the exclamation mark icon when a message is not successfully sent for example.
I think there is no difference between extract the icons from the UIKit or to create exactly the same icon in graphic editor. In the iOS Human Interface Guidelines guidelines is written:
Avoid using iOS interface elements in your artwork. You don’t want
users to confuse your icons or images with the iOS UI.
But if you want to use for example Action button image or Back button image, I think it is completely OK if it does exactly, what the user expects.
Hope it helps

Is there a way to have a different Default.png (splash image) for different languages/locales in iOS? [duplicate]

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
Localization of Default.png is not working
My splash screen has English text in it, so I would like to be able to have a different splash image when users have a different language set.
Is this possible?
Yes, it's possible. Pretty much the same way you localize all your resources.
You just need to provide a Default.png image and then enable all the languages you're interested in. The result is that you'll get a copy of the image for each language into the respective folders. Then edit (or overwrite) each image as you need. I have tested it right now and it works fine (on iOS 5 but I believe is the same for older versions). Here is a screenshot for easy reference:
EDIT:
Regarding any doubts about whether or not this is a good practice, this is straight from Apple's documentation:
In addition to including the launch images at the top level of your
bundle, you can also include localized versions of your launch images
in your app’s language-specific project subdirectories. For more
information on localizing resources in your app, see Table 6-2.
No.
Edit: Indeed, I'm dumbfounded. Like nevan-king I'm going to leave my answer nevertheless, since I still think that's the way it is intended to be done by the iOS guidelines (and my personal opinion about localizing whole images in order to localize its text...).
A splash screen is not intended to provide information. Splash screens are only shown for like a second or so, so it would be unfeasible to show text anyway.
Common practice for what you want to do is to use your image without text as splashscreen, and after that show a custom view with your image and localized text for a few seconds.
That way it will seem like you had a localized splash screen (and the text appears shortly after the image, which is fine).
However, keep in mind that the idea of iOS apps is fast responsiveness, so only show a "startup screen" if you must (for marketing reasons or whatever).
Read this for further information: http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/IconsImages/IconsImages.html#//apple_ref/doc/uid/TP40006556-CH14-SW5
There's no way to do this. Instead, make a Default.png with no text.
Edit: I stand corrected. Just tried Alladinian's method and it worked. I'll leave my answer, as it's a useful technique to know.
You can do this pretty easily in Photoshop by selecting a square, then copying it and pasting it over the text. Use Marquee to select a square of your graphic (say an empty part of a navigation bar). Then hit "v" for the move tool. Use cmd-opt and move the square a little to the left, then cmd-opt-shift so that it doesn't move up or down. Move the square over the text and let go of the mouse button. Repeat as necessary.
If you want to see how Apple handles multi-language splash screens, open Maps or Mail. They have a Default screen with no text, then the text appears (in whatever language) when the app has loaded.

Resources