最近在一家公司實習,學習一些ios的知識。由於之前沒有使用過UICollectionView,因此帶個人導師讓我仿照公司APP中的一個UICollectionView本身作一個練練手。期間遇到了一些問題:咱們知道咱們通常在UITableView中只設置一個headerView與footerView,可是我在UICollection中使用的時候,出現了每一個Section中都有一個headerView和footerView。其實這是正確的,並無什麼錯誤,只是否是咱們想要的結果(我只想一個UICollectionView只有一個headerView和footerView),因此咱們要作一些處理。ios
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 來源:簡書 簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。