UIBarButtonSystemItem enum - Missing Icons? - iphone

I posted a question about mimicking the interface of the Maps application and have just come across another area where i'm unsure about the UIToolbar and UIBarButtonItem's.
In the Maps application, there are two buttons which don't seem to have any constant defined in the UIBarButtonItem documentation
At the bottom left of the app is the "location" icon and when clicking "directions" there is another "switch route" icon, neither of which are defined in the UIBarButtonItem.h
I'm guessing that these haven't been added to iOS 4 yet? Does this mean that the only way to include such buttons/images is to use the initWithImage:style:target:action: method when creating a UIBarButtonItem?
This isn't a problem, although finding similar images would be pain, I just want to make sure i'm, not reinventing the wheel when trying to include such elements.
Also, I note that whilst all the other UI elements can be styled in terms of color, the PageCurl button item doesn't seem to want to change at all. Ie: I can make all of the other toolbar buttons a different color to the default but the page curl refuses to change. Perhaps i'm missing something simple here?
Thanks for reading!

Correct, from the iOS documentation here are the only system icons available by default. You can safely assume that nothing outside of this list exists and you have to use your own image for it if you want something different:
typedef enum {
UIBarButtonSystemItemDone,
UIBarButtonSystemItemCancel,
UIBarButtonSystemItemEdit,
UIBarButtonSystemItemSave,
UIBarButtonSystemItemAdd,
UIBarButtonSystemItemFlexibleSpace,
UIBarButtonSystemItemFixedSpace,
UIBarButtonSystemItemCompose,
UIBarButtonSystemItemReply,
UIBarButtonSystemItemAction,
UIBarButtonSystemItemOrganize,
UIBarButtonSystemItemBookmarks,
UIBarButtonSystemItemSearch,
UIBarButtonSystemItemRefresh,
UIBarButtonSystemItemStop,
UIBarButtonSystemItemCamera,
UIBarButtonSystemItemTrash,
UIBarButtonSystemItemPlay,
UIBarButtonSystemItemPause,
UIBarButtonSystemItemRewind,
UIBarButtonSystemItemFastForward,
UIBarButtonSystemItemUndo, // iOS 3.0 and later
UIBarButtonSystemItemRedo, // iOS 3.0 and later
UIBarButtonSystemItemPageCurl, // iOS 4.0 and later
} UIBarButtonSystemItem;

Related

Can I use the system Touch Bar icons in my app?

I am trying to add a "New" button and a "Search" button for my app onto the Touch Bar. In system apps, these are a plus sign and a magnifying glass, respectively. Is there a way to use these system icons on my touch bar buttons, such as in UIBarButtonItems? If not, how can I set a touch bar button's content to be a magnifying glass or plus sign? I am using Swift. Thanks.
Apple provides many system icons that you can use in your app.
The Human Interface Guidelines has a nice visual reference of all of the icons available here. These can be referenced in your app by using the associated NSImage.Name constant (also described in the HIG).
As an example, the new and search images can be gotten using:
let addImage = NSImage(named: .touchBarAddTemplate)
let searchImage = NSImage(named: .touchBarSearchTemplate)
Maybe you could find those icons in the system files, copy them and use them in your application, but I would not recommend it. They are Apple's intellectual property and you are not allowed to use them for public projects.
You should search on sites like flaticon.com for similar artworks or create them yourself.

ios system Share and settings buttons

I have a task to clone an application of... I can't change the client mind, pls do not suggest it.
I can't found where is hidden in iOS this 2 buttons. I think it is coming from iOS, not just a The buttons looks like: and .
I am searching a code part, something like this:
refreshButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:#selector(doStuff)];
but can't found a button share at:
typedef NS_ENUM(NSInteger, UIBarButtonSystemItem) {
UIBarButtonSystemItemDone,
UIBarButtonSystemItemCancel,
UIBarButtonSystemItemEdit,
UIBarButtonSystemItemSave,
UIBarButtonSystemItemAdd,
UIBarButtonSystemItemFlexibleSpace,
UIBarButtonSystemItemFixedSpace,
UIBarButtonSystemItemCompose,
UIBarButtonSystemItemReply,
UIBarButtonSystemItemAction,
UIBarButtonSystemItemOrganize,
UIBarButtonSystemItemBookmarks,
UIBarButtonSystemItemSearch,
UIBarButtonSystemItemRefresh,
UIBarButtonSystemItemStop,
UIBarButtonSystemItemCamera,
UIBarButtonSystemItemTrash,
UIBarButtonSystemItemPlay,
UIBarButtonSystemItemPause,
UIBarButtonSystemItemRewind,
UIBarButtonSystemItemFastForward,
#if __IPHONE_3_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED
UIBarButtonSystemItemUndo,
UIBarButtonSystemItemRedo,
#endif
#if __IPHONE_4_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED
UIBarButtonSystemItemPageCurl,
#endif
};
in
UIBarButtonItem.h
Any help would be appreciated where to look at.
Need to support iOS 5.0
Edit: can't accept the answer with UIBarButtonSystemItemAction, because it looks like:
As you can see, it is not the "clone" of original, bar far away, because it is missing the description ( text under icon), checked the UITabBarSystemItem, since those has text under icon, but nothing match the 2x images:
typedef NS_ENUM(NSInteger, UITabBarSystemItem) {
UITabBarSystemItemMore,
UITabBarSystemItemFavorites,
UITabBarSystemItemFeatured,
UITabBarSystemItemTopRated,
UITabBarSystemItemRecents,
UITabBarSystemItemContacts,
UITabBarSystemItemHistory,
UITabBarSystemItemBookmarks,
UITabBarSystemItemSearch,
UITabBarSystemItemDownloads,
UITabBarSystemItemMostRecent,
UITabBarSystemItemMostViewed,
};
It seems need to search a custom library and get those 2 icons for or make 2x custom buttons with those images.
UIBarButtonSystemItemAction is what you are looking for the Share.
The settings icon doesn't exist as a system icon so you have to use a custom button with an image.
Here is an example on how to create a Bar Button with a custom image
EDIT:
As long as the share button is not exactly the same with what you want, add two custom buttons if you want the icons to look exactly as the native ones.
Kind reminder: Apple doesn't like it when developers immitating their custom controls when they aren't using the defaults.

which multi-selection can be implemented in iphone (Registration page)

I have multi-selection dialog(drop-down) in Android where user selects all options applicable to him in registration page.What can be used in Iphone for the same purpose ?
And selecting a few options will unhide few textfields which is mandatory to fill.
Let me know what can be my approach.Please share any open source code links.
Thanks in advance.
No, there is no such thing within the iOS SDK and that is for a good reason - those elements are just not pretty, funky and usable well enough when acting on a touch display.
Consider using UIPickerView or UISegmentedControl instead. Maybe also have a look at Action Sheet.

dynamic button text iphone

If you want to make a multilingual button on a native iPhone app, where it can be one language by default, but based on your settings, show different text on the same button, how would you go about it?
Is it also possible to style (e.g. with text-shadows and custom fonts) the text on the button?
I'm not an iOS developer, but I'm attempting to provide designs for an iOS developer and don't understand the limitations (yet) when going from CSS3 to iOS UI elements.
So far, iOS development appears to be like creating image-maps where none of the CSS logic is applicable from web development and almost all UI elements appear to need all states as flattened images. I thought the controls were more dynamic but haven't found the right terminology for results from google to be very forthcoming on the topic.
U can use NSLocalizedString for multilingual text on button.
Configuring Button Title
titleLabel property
reversesTitleShadowWhenHighlighted property
– setTitle:forState:
– setTitleColor:forState:
– setTitleShadowColor:forState:
– titleColorForState:
– titleForState:
– titleShadowColorForState:
Also set Custom font like this:
yourButton.titleLabel.font = [UIFont fontWithName:#"Courier" size:22.0];
if u want to add gradient to button then u will have to use CALayer like this:
yourButton.layer = //any modification in button's layer here
For more refer UIButton class reference

Make Popups With Cocoa Touch

I'm trying to make a popup like in "Camera+" or "Tweetbot" (like this one : Tweetbot or this one Camera+). How can I do this ?
That component is generally called a Popover or a Callout. Apple provides you with an Implementation on the iPad (UIPopover) but not on the iPhone.
There are a few Libraries which attempts to solve this and creates similar popovers like the ones you've shown. With a bit of customisation you can get it to look like this ones you've linked. Below is a list of the ones i've found so far:
WEPopover
CMPopTipView
PopupView
There's similar question here: iPhone popup menu like iPad popover?.
There is a solution. It's called WEPopover and you can download it from github.
For ipad use the popover control:
http://www.matthewcasey.co.uk/2010/04/07/tutorial-introduction-to-pop-over-control-on-ipad-part-1/
http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/iPadControllers/iPadControllers.html
http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIPopoverController_class/Reference/Reference.html