I’m working on an app that can display a graph with some data, one every day. I’ll call this “dayGraph”.
I’d like to build an interface similar to the iPhone home screen, aka pageControl, with one dayGraph per page. (but i don’t need the small dots!)
I tried with the standard pageControl example from Apple, and it’s working, but only with a small number of pages. I need to display even 100 possible dayGraph, if the user wants, but the pageControl is going crazy when the page number exceed 50.
I know that the photo app is doing a similar thing, and it can work with many photos.
My question is: How can i do that? Is there any “Apple way” of doing it, or i should begin to make my own method for swapping the dayGraphs?
Thank you very much!
If your goal is to enable swipe-based paging, the view you want to use is a
UIScrollView. Set itspagingEnabledproperty toYES. Then add each graph as a subview of yourUIScrollView, setting the frame of each graph to position each one on its own page extending beyond the bounds of yourUIScrollViewto the right. Finally, update the contentSize property of yourUIScrollViewto encompass all of your pages.Now the user can swipe left and right to flip between the pages of your scroll view.
Note: If you add 50+ subviews to your scrollview, it’s likely that you’ll run into memory problems. To avoid this, you’ll probably want just keep subviews loaded for the current page, plus the adjacent pages to the right and left. Set a
delegateon yourUIScrollViewto an object that implementsscrollViewDidEndDecelerating:. In that method, remove any subviews that aren’t on the current or adjacent pages, and make sure each adjacent page has its subview loaded. That way you’ll never have more than 3 pages of content in memory at one time.