I’m trying to create a view that’s full of controls (buttons, text views, labels, etc.) that can scroll, since I don’t have enough screen space for all the controls. I understand that I need the root view in my application to be a UIScrollView and I need to attach to that a UIView with all my controls in it. The problem is, after I set the root view to be a UIScrollView, and I add a UIView to the root view, Interface Builder won’t let me position any of my controls, it just drops them all in the center.
- Am I correctly understanding how I make a view scroll?
- If so, how can I get Interface Builder to allow me to position my controls?
- Once I’m able to do this, how can I position controls in Interface Builder beyond the dimensions of the window, since it’s going to be scrollable?
Thanks so much in advance for your help!
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
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: