UICollectionView的headerView、footerView使用以及與UITableView加載headerView、footerView的區別

前序

最近在一家公司實習,學習一些ios的知識。由於之前沒有使用過UICollectionView,因此帶個人導師讓我仿照公司APP中的一個UICollectionView本身作一個練練手。期間遇到了一些問題:咱們知道咱們通常在UITableView中只設置一個headerView與footerView,可是我在UICollection中使用的時候,出現了每一個Section中都有一個headerView和footerView。其實這是正確的,並無什麼錯誤,只是否是咱們想要的結果(我只想一個UICollectionView只有一個headerView和footerView),因此咱們要作一些處理。ios

瞭解Section、indexPath、row的區別

row和section是在UITableView中定義的佈局

indexPath.section:表明了單元格(Cell)的第幾個分區學習

indexPath.row:表明分區的第幾行spa

必定要理解上面這兩個概念,由於這很重要。io

通常狀況下咱們使用UICollectionView的時候並無設置分區,咱們只是使用一個分區,系統默認的也是一個分區。table

正是由於只有一個分區,因此咱們纔會顯示一個headerView和一個footerView。若是咱們設置了幾個分區的話,那麼全部的分區都會有一個headerView和footerView。這裏我就要說一下UICollectionView和UITableView加載headerView與footerView的區別。方法

UITableView加載headerView與footerViewim

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;img

這裏後面的參數是section;tab

UICollectionView加載headerView與footerView

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath;

這後面的參數是indexPath;

對於UITableView中headerView、footerView的加載方法網上已經有不少了,這裏就不作介紹了!下面來講說UICollectionView的加載。

 

解決方案

正如上面說的,若是咱們只有一個分區的話,那咱們能夠不用進行判斷,可是當咱們有幾個分區的時候,咱們要在加載headerView和footerView的時候加以判斷。

 

你覺得這樣就能夠了嗎?若是你只是設置這個的話,那麼你就錯了,除此以外你還要設置佈局代碼。

結束語

以上就是本人的解決方案,也不知道理解的是否到位,但願您能夠指出個人錯誤之處,你們一塊兒相互學習。最後,謝謝您的觀看。

做者:KingTortoise 連接:https://www.jianshu.com/p/c540e5d92201 來源:簡書 簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。

相關文章
相關標籤/搜索