Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UIcollectionview decoration view VS supplementary view

I'm starting my development of an ios app using ios 6 and UICollectionView. I've noticed there's support for both supplementary views and decoration views.

Can someone please explain in bullet points the difference between the two? They sound very similar.

If I want to add a loader to my collection view (that will appear at the bottom of each section, while the section is loading) should it be a supplementary view or a decoration view?

Thanks

like image 718
vondip Avatar asked Oct 04 '13 07:10

vondip


People also ask

What is Uicollectionreusableview?

A view that defines the behavior for all cells and supplementary views presented by a collection view.

What is swift UICollectionView?

An object that manages an ordered collection of data items and presents them using customizable layouts.


1 Answers

Decoration views are just what the name says: decoration, chrome. Only the collection view layout decides what they are and where to put them (for instance, if you want to draw lines on the screen every 5 items).

Supplementary views are more related to your data. The collection view layout still decides where to put them, but they are provided by the collection view data source, just like regular cells. For instance, if you wanted to put titles for sections, you would use supplementary views because the title would be different for each section and you need to call the data source for each.

If your loader is generic, it could be a decoration view, however decorations views are not really accessible (the layout object says where to put them, and that is it, they are created by the collection view and you never get a reference to them), so if you want to start/stop animating it, a decoration view is not the best choice. If you use a supplementary view, then you have access to it at creation time (in your data source collectionView:viewForSupplementaryElementOfKind:atIndexPath: method). However, you can only query the collection view for regular data cells once they are laid out on screen. Also, you will have to write your own UICollectionViewLayout class if you want to use custom decoration or supplementary views. The base UICollectionViewFlowLayout only provides for a footer and a header supplementary view.

like image 183
Guillaume Avatar answered Sep 20 '22 10:09

Guillaume