Apple's "human interface guidelines" is clear about which side (left or right) you should place certain tool-bar buttons: CANCEL (left).... and.... DONE (right).
Which side (left or right) should other buttons go on?
ADD and DONE
EDIT and SAVE
EDIT and ADD
SORT and SEARCH
SORT DIRECTION and SORT FIELD
CANCEL ADD
This is by no means an answer, just an opinion.. i wouldve commented it but for some reason it wont let me..
From what ive gathered, any thing that take you to a previous state: i.e cancel, back, etc would be on the left side..
anything that take you to a forward state, i.e save, add, done, etc would be on the right side.. now depending on the view, whether a button belongs on the left or right might vary..
for example:
consider a ui table view that contains data.. at the top of this view i dont thing id have anything on the top LEFT (unless this table view is NOT the primary view, in which case i probably would have some sort of back button)
on the top RIGHT i would probably have and edit button that lets me delete something from this table view
upon selecting a specific line i would be directed to another view specific to that piece of data.. at the top LEFT i would have a back button and on the top RIGHT i may have another button with more specific functions that were not available on the previous tableview..
this is by no means an answer just an idea to maybe help clarify your situation..
if you look at the hierarchy of your application, you'l often determine the bast place to provide a certain function and whether it actually belongs there
hope it helps
Related
Okay, I have a Scroll View with Page Control that works properly between 2 sections (2 pages).
So I can scroll left and right once. Is it possible to always scroll right?
Like when you get to page 2, it expands to the right, but not allowing to scroll back left.
I dont need it to simply add another page and have 3 pages then 4. at all times there should be only 2.
The reason I need this function is because I will use the scrolling to reset data. As you scroll to the right a duplicate of the interface with cleared fields will come on to the screen as the interface with the old data will go off. Its a neat way to reset, not just a boring old button.
Can someone point me in the right direction on how to do this?
There are many examples of this. Here are a couple.
InifiniteHorizontalScroll
StreetScroller
Hope this helps.
Here's the effect I'm going for: Imagine a scrollable list of items on the left side and an empty list on the right side. I want the user to be able to drag items from the left to the right to build a new list. Of course I want the user to be able to choose where the items appears in the right-side list and I want the cells to move out of the way (the same effect when you reorder the cells in a UITableViewController).
This sounds like it should be as "easy" has having two UITableViewControllers side by side and allowing them in interact with each other. But of course (I think) that's not even possible, let alone easy.
We see this type of dialog box all the time in desktop applications with --> and <-- arrows for the user to move items back and forth between the original set on the left and the new set on the right.
Any ideas?
I've had this problem several times now, and never found a satisfactory solution: If I want to move a group of items with a view all together in Interface Builder, and these items are all on top of a larger background item, I can't put a selection rectangle around the items in the view because any click and drag in the view initiates a move of the background item. In other words, every pixel in the area I'm interested in (and nearby) has a "hand" mouse pointer, no "arrow" pointer is available so I can't drag out a rectangle selection box.
cmd-clicking individual items to build up the group only works when they are separate, and only when there are a few of them. Sometimes I want to select a "pile" of items all on top of each other.
Is there some way to "select for moving" by clicking in the .xib item list? Double clicking a single item selects it for moving in the view, but I have't found a way to add to the "select for moving" selection this way.
So far the best way I've found is temporarily moving the background out of the way and then putting it back but this is unsatisfactory, and wouldn't work with a more complex background arrangement.
How have others done this?
I know what you mean, and I have found a slightly better solution: go to the list view and...
drag either the background view or your custom view up to the root hierarchy level (adjacent to File's Owner)
double click on your custom view and edit away using drag-box-selection
when finished, drag the view back into its original hierarchy position
The key here is that the GUI editor only edits one root object at a time, so moving the background vs. 'foreground' views into separate root objects allows you to edit them separately. Woo!
This is my solution to this problem: Select the background images/object that you don't want to move and set its width to 1 and then, after a comfortable layout editing, restore its original width. This works for me.
Use the left hand side list view and multi-select a range by clicking on the first item in the range then shift-click on the last item. Use ctrl-click to unselect some items if necessary. As items are selected they will also show as being selected in the interface view on the right.
Once have set up all the selected items, cmd-click on the selected items in the right hand side interface view and drag.
In the list of objects, cmd+click each one you want to select them all. In the interface hold command and click and drag the stack of items. Drag them to where you want them and release cmd. If you don't release the button they will rubber band back to their original position.
When you use your safari on iphone, you can see the page control on the right bottom corner.
If you press this button, all pages will show, also they can be edited too.
I try to do the similar thing like this.
I want to press my edit button on the toolbar, then all the subview will appear a delete control on the left top corner(right top corner all ok). I tried to use the tableviewcell(setEditing method), it show the delete control, but isn't appear on the top corner.
Do you have any ideas? Or, Am I doing something wrong by using tableviewcell?
A table-view cell definitely isn't the right approach here. That editing control is a custom one, probably a generic UIButton with a red-encircled X graphic. There isn't a built-in class that'll give you the behavior you're looking for; you'll have to roll your own, probably using a UIScrollView (with pagingEnabled set to YES) with your “page” views laid out in a row inside it.
I have a UITableViewController which lets the user drill down into different records. On the second level/view, the user can add and edit new records. But, I am not sure what to do, since the back button is on the top left, and I need to put the "Add" button on the top right, so there is no room (keeping to HIG) for the edit button, which would normally go where the back button is. (I am using a tab bar, so can't put it at the bottom.)
Do you think that it is logical, to expect users to know to swipe to delete a record? Or, do I need to have an edit button? If I DO need an edit button, where should I put it if I am following HIG?
Swipe to delete is a firmly established iphone UI interaction, so yes I would be comfortable expecting users to know that. We've run into the same problem a few times, and yeah you only get two nav bar buttons so you've got to make a choice. If you're already using the bottom for a tab bar, I don't see many other options.
I have a similar situation in my app.
When the user taps the edit button I show an extra table cell at the end of my table which lets them add a new record. Not sure if that's feasible in your case.
Maybe add it at the beginning, or insert a button just above the UITableView? You could then also label the button "Add/Edit" to make it clear that that's how they can add new records, although I haven't done that.
Another option would be to have that extra button or table cell always visible.