In my experience, you're better off having a UIView as a root view and then a UIScrollView as the one and only, screen-filling subview of that view. Saves some trouble in code (ugly casts) and when extending (how to put some screen-fixed element in there afterwards?)
If you want to keep it in IB, either
- add your own custom view to the library (sorry, no experience with that), or
- just put the big UIView in the scrollview and position the elements by their x/y position, or
- set your root-views status-bar to unspecified so you can resize the root view to whatever size you need to layout the contents of the scrollview correctly, and when done, wrap it up again to 320x480 (but make sure you disable autosizing on the right elements, or the resize action will destroy your work), or
- design the UIView separately and drag&drop it into place as a subview of the scrollview, in the document-window! use cmd-0, that window! the parent will light up before you drop something into it. The set the top-left x,y of the dropped subview to 0,0. (this method requires you to link up all outlets everytime you drag&drop)
If you choose to take the non-IB route, design your UIView and save it as a nib, and then load the nib programmatically when the rootcontroller loads. (there's a lot on that topic on SO) When you've got this right, it will be the friendliest way from the design/IB perspective.
So.. a lot of options, none of them really good. IB can do wonders but you need some time to understand it. (I'm still struggling... so suggestions are welcome)
For clarity, my typical view-scrollview-view-elements layout looks, with fake numbers, like:
View (320x480-ish)
Scroll View (320x480-ish)
View (1024x1024)
Label (positioned 0,0)
Button (positioned 500,900)
ImageView (1024x800, positioned 0,100)
UISearchBar (possibly, always on screen, above scrollview or sliding in, ...)