Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS UI development: approach to building document "selector" screen

I'm looking to build a document "selector" screen, similar to Pages and Numbers on the iPad/iPhone: Document Selector Screen

I come from a WPF background and have some iOS experience. That being said, I'm looking for a good approach to building something like the tile-based interface Apple uses for opening documents in Pages.

I'm not concerned with the Folder animation.

What is the best way to approach building just the tile interface? I'd imagine I'd build some sort of view that sits within a UIScrollView - but it's the nature of that subview that I'm a little confused about. Does iOS have any wrap-panel or grid-like controls I could load a set of tiles (i.e., documents) into?

What do you guys think?

like image 705
themechanix1 Avatar asked Jul 24 '11 18:07

themechanix1


1 Answers

I don't know of any third-party classes to handle this for you, but there might be some out there.

The basic structure will be a UIScrollView containing a set of views, each representing one cell on the grid. You set the scroll view's contentSize based on the total number of tiles. Then you create tile views on demand, and place them inside the scroll view.

The scroll view's delegate object will be responsible for monitoring the scroll position, putting down tile views as they become visible, and (optionally) removing tile views that move out of view. This is basically how UITableView works: there are only about six or so instances of UITableViewCell at any given time, they are recycled as you scroll up and down the view. (Imagine a train where somebody at the back end is pulling out the rails and passing them forward to somebody in the front, putting them down in front of the train. As far as the train knows, the rails go on for miles.)

If you wind up having to place all the views yourself, take some time to learn the CGRect family of methods, including CGRectDivide. They will be useful in laying out the views and also in computing what's visible and what's not.

like image 164
benzado Avatar answered Oct 24 '22 02:10

benzado