What can be used instead of tooltip in iphone app? - iphone

What can be used instead of tooltip in iphone app?
Best alternative of tooltip in touch screen systems?

Tooltips are generally reserved for operating systems that have a cursor. In touchscreen applications, tooltips should not be needed at all. When your application is in use, the user should always know where the menus are, what all of the buttons do, etc, simply because they have been labeled clearly with a text explanation or an image.
If you need the use of tooltips in your application, you need to rethink your design.
Be Succinct.

I believe tooltips are still viable in form of short timed message. For instance, you may show dialog when button can be single-clicked or long-pressed. How else would you describe to user that functionality. None of the solutions above seem to work in this case. I guess timed message, some kind of dialog and help file are only options. Or am I missing something?

You don't. Instead apply a stronger preference for text buttons over buttons with an icon. Sometimes a footer message describes the current status in more detail.
(this is just me, interpreting Apple app design as good practice)

Tooltips can be useful especially for icons or image that are not or cannot be labeled and also for multilingual apps where different text lengths must be taken into account. It's not always a question of rethinking your whole design, for me it depends on the context of your app. An design doesn't fail just because tooltips have to be added.
Safari on iPhone and iPad uses the method touch and hold on a link. This very near the actual hover and hold for desktop apps. This is also the direction we are looking at in my company.
Ref.:
http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html
Regards,

Related

Any way to make a checkbox able to be 'tabbed' to on an iPhone?

On a computer you can easily tab through HTML checkboxes on a website, but is there any way to make it so that on an iPhone when you hit the 'next' button it goes to a checkbox? I've noticed it'll go between text boxes and drop down menus, but it won't do it for checkboxes or clickable buttons. Is this an issue with the iPhone, or is it something I can change on my website?
Can you please be a bit more precise with your question. And if its the size of the checkbox that is a concern which makes it non tappable, then as suggested by the user interface guide of apple ios, please make the size as 44x44 to make it tappable. Well thats just a suggestible size and I believe a 25x25 size may solve your issue.

UIAlertView replacement

It seems that I am always fighting with UIAlertView to make it do what I want. I'm done fighting - are there any robust UIAlertView replacements with the following features, or will I need to write my own?:
ability to customize the alert-view size/position
ability to change the layout of the
buttons (stacked vs. side-by-side)
ability to prompt users for input via UITextField or UITextView
resizing / repositioning behavior
when the keyboard appears
ability to have a UITextView for
scrolling text
pixel-perfect copy of UIAlertView for
basic display
ideally interface compatible with
UIAlertView - i.e. it is a drop-in-replacement.
I've found a few blog and stackoverflow posts which implement customizations on a UIAlertView - this is NOT what I want. Nor do I want a guide on how to implement a custom AlertView -- I know how, I just want to find one that is already community maintained. I want a ground-up replacement that is safe for App Store submission and future-proof against UIAlertView changes (yes, I've been burnt...)
Please respond with comments if you have suggestions for other desirable features.
Answering my own question.
I searched high and low for a prefab UIAlertView project that offered the features I was looking for. I'm sure they exist -- I've seen apps with great alerts. Their authors must not be sharing - which is totally fine, I understand.
So I wrote my own. TSAlertView is a ground-up implementation of a modal alert view that is interface-compatible with UIAlertView. In terms of visual look, while it is not a pixel-perfect copy, it comes very close. The features it offers are basically what I outlined in the original question:
ability to set the display-width and max-height of the alert view. This allows me to have nicer looking alerts on iPad.
ability to specify the layout of the buttons (stacked vs. side-by-side), even if there are only two buttons. This always bothered me with UIAlertView -- if I had two buttons they were always placed side-by-side. A big problem if the button text didn't fit.
ability to prompt users for input via a UITextField. Once in a while you just need a quick and dirty way to prompt the user to enter something.
resizing / repositioning behavior when the keyboard appears. (happens when prompting for user-input)
ability to have a UITextView for scrolling text. Can explicitly set this option instead of relying on UIAlertView to swap in a UITextView for long text.
near pixel-perfect copy of UIAlertView for basic display.
support for custom backgrounds
is interface compatible with UIAlertView - i.e. it is a drop-in-replacement.
I've used a handful of great open-source projects in my code in the last year. My two favorites are MBProgressHUD and MGSplitViewController, each hosted at github. I decided to share TSAlertView in the same manner.
https://github.com/TomSwift/TSAlertView
The initial implementation surely has some bugs. I haven't used it in a shipping project yet, but I am using it in my current project to be completed in a few weeks. If you want to try using it yourself, please feel free. Post any issues on github, or better yet, submit a fix.
Enjoy!
Here are some screenshots showing 1) 2 stacked buttons 2) input capability 3) explicit width setting
Check out Smart Alert View, it's open-source.
Check my own Alert view replacement - get app here. https://github.com/FeminaErnest/GeekyFemi. Good luck

Styling <select> tag for iPhone

When a <select> tag is used in a HTML page, is there a way to style the text size in
the scroll wheel that shows on the iPhone?
There is this alternative.
http://cubiq.org/spinning-wheel-on-webkit-for-iphone-ipod-touch
It uses javascript to put the elements on the page.. I used it for a web/ iphone app and it worked really well. There would be custom styling if you wanted to change the default text sizes and you could also load in custom images..
I don't believe you can style the wheel that shows up on the iPhone directly. In fact, even modifying it in browsers has weird support. For example, http://jsbin.com/obake3 doesn't work at all in Chrome, only modifies the actual drop down in Safari and stretches the graphic in a very ugly way in Firefox.
We investigated and couldn't find any reliable way of altering the display so we looked into different libraries. We're having good luck with the Mobiscroll library for jQuery. It is a more up to date project than the cubiq project referred to in other responses.
The control is themable. You can easily change the appearance of if in CSS. It also comes with pre-defined, nice looking color schemes.
We chose it because it works across devices allowing for a more consistent look & feel.
Taken from Sitepoint Ref
The select renders slightly differently depending on the browser and operating system in use, and is well known as a troublesome HTML element to style with CSS (because the display is inherited from the operating system, rather than provided by the browser)

UITableViewCell with selectable/copyable text that also detects URLs on the iPhone

I have a problem. Part of my app requires text to be shown in a table. The text needs to be selectable/copyable (but not editable) and any URLs within the text need to be highlighted and and when tapped allow me to take that URL and open my embedded browser.
I have seen a couple of solutions that solve one of either of these problems, but not both.
Solution 1: Icon Factory's IFTweetLabel
The first solution I tried was to use the IFTweetLabel class made possible by Icon Factory and used in Twitterrific.
While this solution allows for links (or anything you can find with a regex) to be detected to be handled on a case by case basis, it doesn't allow for selecting and copying.
There is also an issue where if a URL is long enough to be wrapped, the button that the class overlays above the URL to make it interactive cannot wrap and draws off screen, looking very odd.
Solution 2: Use IFTweetLabel and handle copy manually
The second thing I tried was to keep IFTweetLabel in place to handle the links, but to implement the copying using a long-tap gesture, like how the SMS app handles it. This was just about working, but it doesn't allow for arbitrary selection of text, the whole text is copied, or none is copied at all... Pretty black and white.
Solution 3: UITextView
My third attempt was to add a UITextView as a subview of the table cell.
The only thing that this doesn't solve is the fact that detected URLs cannot be handled by me. The text view uses UIApplication's openURL: method which quits my app and launched Safari.
Also, as the table view can get quite large, the number of UITextViews added as subviews cause a noticeable performance drag on scrolling throughout the table, especially on iPhone 3G era devices (because of the creation, layout, compositing whenever a cell is scrolled on screen, etc).
So my question to all you knowledgeable folk out there is: What can I do?
Would a UIWebView be the best option? Aside from a performance drag, I think a webview would solve all the above issues, and if I remember correctly, back in the 2.0 days, the Apple documentation actually recommended web views where text formatting / hyperlinks were required.
Can anyone think of a way to achieve this without a performance drag?
Many thanks in advance to everyone who can help.
As soon as I hit the submit button, a new idea hit me.
I was so preoccupied with having URLs inline with text and interactive that I didn't consider that maybe it's not the best solution.
I'm certain that to achieve that kind of behaviour, a UIWebView is the best choice, regardless of the performance issues.
However, maybe a better user experience / interaction is to not highlight the URLs inline, but to gather them into an array behind the scenes, and present a disclosure button as the cell's accessory view?
Then for selection and copying text, I could just use the UITextView with data detectors turned off and not worry about the links being sent off to safari and closing my app.
When the disclosure button is tapped, the user could be whisked off to the URL found in the text, or if more than one URL is found, present the user with a picker view to choose which to go to.
Any thoughts/criticisms of this idea are welcome.
You can prevent a textfield from being edited by overriding the UITextField Delegate methods such that they do not apply any edits. That leaves the field selectable and copyable but prevents alteration.
A better question to ask is: do you actually have to display the actual URL itself? Can you get away with just a page/location name, just the server.host.domain prefix or some other condensed representation of the url? I don't think anyone whats to try to read a long url on a mobile's restricted screen.
If you do need to display the entire url then I think that a detail view is the way to go.

Are the built-in images in iPhone documented, and is there a list of their names somewhere?

I discovered somewhat by accident that if you make a UIButton in Interface Builder and type in Plus in the image field, a + image appears for the button. A similar result comes from typing Minus.
I am wondering if this is a bug, or if there is some way the poor programmers can access the built-in general GUI images from other apple apps, such as the green +, the red -, the detail disclosure chevron, the big red "Delete Contact" or similarly styled button, etc.
Has anyone else encountered this, or know where to access these things in Xcode?
It makes sense to me that they should be usable, cause the Apple HIG seems to be all about making things recognizable and intuitive, and using them the way other apps use them.
You can get the UITabBarItems and once there search for UIBarButtonItem. Scroll towards the bottom of the screens and you can see all the system images for Tab Bars and Navigation Bars.
I found an up-to-date (iOS7) list of icons for UIBarButtonSystemItem on the official iOS Developer Library, which could be helpful.
UIBarButtonSystemItemDone
UIBarButtonSystemItemCancel
UIBarButtonSystemItemEdit
UIBarButtonSystemItemSave
UIBarButtonSystemItemAdd
UIBarButtonSystemItemFlexibleSpace
UIBarButtonSystemItemFixedSpace
UIBarButtonSystemItemCompose
UIBarButtonSystemItemReply
UIBarButtonSystemItemAction
UIBarButtonSystemItemOrganize
UIBarButtonSystemItemBookmarks
UIBarButtonSystemItemSearch
UIBarButtonSystemItemRefresh
UIBarButtonSystemItemStop
UIBarButtonSystemItemCamera
UIBarButtonSystemItemTrash
UIBarButtonSystemItemPlay
UIBarButtonSystemItemPause
UIBarButtonSystemItemRewind
UIBarButtonSystemItemFastForward
UIBarButtonSystemItemUndo
UIBarButtonSystemItemRedo
UIBarButtonSystemItemPageCurl