複習知識點:UITableView和UICollectionView的經常使用屬性

UITableViewide

UICollectionView佈局

  //UICollectionViewLayoutspa

    //UICollectionViewLayout決定了UICollectionView如何顯示在界面上,Apple提供了一個最簡單的默認layout對象:UICollectionViewFlowLayout對象

    //Flow Layout是一個Cells的線性佈局方案,並具備頁面和頁腳。其可定製的內容以下:blog

    //itemSize屬性事件

    //設定全局的Cell尺寸,若是想要單獨定義某個Cell的尺寸,能夠使用下面方法:ci

    - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath;element

    

    //minimumLineSpacing屬性it

    //設定全局的行間距,若是想要設定指定區內Cell的最小行距,能夠使用下面方法:io

    

    - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section;

    

    //minimumInteritemSpacing屬性

    //設定全局的Cell間距,若是想要設定指定區內Cell的最小間距,能夠使用下面方法:

    - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section;

 

    //scrollDirection屬性

    //設定滾動方向,有UICollectionViewScrollDirectionVerticalUICollectionViewScrollDirectionHorizontal兩個值。

    //headerReferenceSize屬性與footerReferenceSize屬性

    //設定頁眉和頁腳的全局尺寸,須要注意的是,根據滾動方向不一樣,headerfooterwidthheight中只有一個會起做用。若是要單獨設置指定區內的頁面和頁腳尺寸,能夠使用下面方法:

    - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section;

    

    - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section;

    

    //sectionInset屬性

    //設定全局的區內邊距,若是想要設定指定區的內邊距,能夠使用下面方法:

    - (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section;

    

    //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

    //UICollectionViewDataSource

    //返回collection view裏區(section)的個數,若是沒有實現該方法,將默認返回1

    - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView

    

    //返回指定區(section)包含的數據源條目數(number of items),該方法必須實現:

    - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section

 

    //返回某個indexPath對應的cell,該方法必須實現:

    - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

    {

        UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"myCell" forIndexPath:indexPath];

        if(indexPath.section==0)

        {

            cell.backgroundColor = [UIColor redColor];

        }

        else if(indexPath.section==1)

        {

            cell.backgroundColor = [UIColor greenColor];

        }

        return cell;

    }

    

    //UICollectionViewCell結構上相對比較簡單,由下至上:

    //

    //首先是cell自己做爲容器view

    //而後是一個大小自動適應整個cellbackgroundView,用做cell平時的背景

    //再其次是selectedBackgroundView,是cell被選中時的背景

    //最後是一個contentView,自定義內容應被加在這個view

    //collection view添加一個補充視圖(頁眉或頁腳)

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

    

    //設定頁眉的尺寸

    - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section

    

    //設定頁腳的尺寸

    - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section

    

    //添加頁眉和頁腳之前須要註冊類和標識:

    - (void)registerClass:(Class)viewClass forSupplementaryViewOfKind:(NSString *)elementKind withReuseIdentifier:(NSString *)identifier

 

    //設定指定區內Cell的最小行距,也能夠直接設置UICollectionViewFlowLayoutminimumLineSpacing屬性

    - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section

    

    //設定指定區內Cell的最小間距,也能夠直接設置UICollectionViewFlowLayoutminimumInteritemSpacing屬性

    - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section;

    

    //UICollectionViewDelegate

    //當指定indexPath處的item被選擇時觸發

    - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath

 

    //P.s. 當你刪除或添加元素時,必定要更新numberOfItemsInSection的返回狀況。

    //當指定indexPath處的item被取消選擇時觸發,僅在容許多選時被調用

    - (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath

 

    //下面是三個和高亮有關的方法:

    //事件的處理順序以下:

    //

    //手指按下

    //shouldHighlightItemAtIndexPath (若是返回YES則向下執行,不然執行到這裏爲止)

    //didHighlightItemAtIndexPath (高亮)

    //手指鬆開

    //didUnhighlightItemAtIndexPath (取消高亮)

    //shouldSelectItemAtIndexPath (若是返回YES則向下執行,不然執行到這裏爲止)

    //didSelectItemAtIndexPath (執行選擇事件)

    //若是隻是簡單實現點擊後cell改變顯示狀態,只須要在cellForItemAtIndexPath方法裏返回cell時,指定cellselectedBackgroundView

    - (BOOL)collectionView:(UICollectionView *)collectionView shouldHighlightItemAtIndexPath:(NSIndexPath *)indexPath

    - (void)collectionView:(UICollectionView *)collectionView didHighlightItemAtIndexPath:(NSIndexPath *)indexPath

    - (void)collectionView:(UICollectionView *)collectionView didUnhighlightItemAtIndexPath:(NSIndexPath *)indexPath

相關文章
相關標籤/搜索