What I want to accomplish:
I'm designing a simple game's main screen. On the bottom half of the screen I want it to contain a collection view presenting a list of levels to choose from (long list, horizontally scrollable, nothing fancy - so it may be handled by a standard flow layout). On the top half of the screen I want to have a bunch of static, non-scrollable elements like an image or a label with game title, a static button leading to the credits page, a text field to enter user name etc.
The problem:
As the focus of this design seems to center around a collection view, I'm trying to use a UICollectionViewController in my storyboard to handle this. However, when I drag UICollectionViewController into my storyboard, it seems to always occupy full screen. I can't find a way to shrink it down nor to drag & drop any button or labels onto it.
The question:
How can I accomplish such design as described above (collection view occupying only part of the screen, the other part being occupied by some static, non scrollable controls)?
Should I:
- provide static buttons inside flow layout's header or footer section? (but then I'd have to make them "sticky", so they don't scroll with the rest of the content
- subclass flow layout and implement static buttons as layout's decoration views
- create custom container controller with two sections, one with UICollectionViewController, second with a plain view controller with a bunch of static buttons
- Do not use UICollectionViewController, but instead use a plain UIViewController and handle collection data source and delegate "manually" (it seems as a lot of unnecessary work)
- maybe I just miss some simple way to drag&drop buttons over UICollectionViewController in XCode's IB (or to configure)
- any other way to do it?
Please note that: 1. I'm complete iOS newbie, may miss some very obvious solution 2. Apart of sharing the same screen all of my components are very standard, I don't need any custom layouts or behaviours for my collection view or buttons - so I'd like to know whats the cleanest and simplest way to do this (some of potential solutions I proposed above seem like they may work, but for me sound like an overkill to implement such a simple screen)