在線客服系統(tǒng)
十三年專注于網(wǎng)站建設(shè)與互聯(lián)網(wǎng)應(yīng)用開發(fā),低調(diào)、有情懷的網(wǎng)絡(luò)應(yīng)用服務(wù)商!
南昌百恒科技微信公眾號 掃一掃關(guān)注
tel-icon全國服務(wù)熱線:400-680-9298,0791-88117053
掃一掃關(guān)注百恒科技微信公眾號

IOS開發(fā)之集合視圖中的可重用對象

百恒科技 2019-01-21 16:52:16 3463
? ? ? ?前面我們講到了表視圖的可重用對象,沒多大印象的朋友可查看該文《IOS開發(fā)之表視圖的可重用對象》再溫習(xí)一遍。今天,南昌APP開發(fā)公司主要為大家介紹一下IOS開發(fā)中集合視圖中的可重用對象。

? ? ? ?集合視圖在iOS 6之后才可以使用,它也有兩種子視圖采用可重用對象設(shè)計,它們是單元格視圖和補(bǔ)充視圖,這兩個視圖都繼承自UICollectionReusableView,使用時需要自己編寫相關(guān)代碼。

? ? ? ?1、單元格視圖
? ? ? ?在集合視圖中,我們可以使用UICollectionView的dequeueReusableCellWithReuseIdentifier:forIndexPath:方法獲得可重用的單元格,模式代碼如下:

? ? ? ?override func collectionView(collectionView: UICollectionView,
? ? ? ??cellForItemAtIndexPathindexPath: NSIndexPath) ->
? ? ? ??UICollectionViewCell {
? ? ? ??var cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell",
? ? ? ??forIndexPath: indexPath) as Cell
? ? ? ??......
? ? ? ??return cell
? ? ? ?}? ? ? ??

? ? ? ?- (UICollectionViewCell *)collectionView:(UICollectionView *)
? ? ? ??collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
? ? ? ?{
? ? ? ??Cell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:
? ? ? ??@"CellIdentifier" forIndexPath:indexPath];
? ? ? ??......
? ? ? ??return cell;
? ? ? ?}

? ? ? ?在上述代碼中,collectionView:cellForItemAtIndexPath:方法是集合視圖的數(shù)據(jù)源方法,其中Cell是我們自定義的繼承自UICollectionReusableView的單元格類。使用dequeueReusableCellWithReuseIdentifier:時,需要使用故事板設(shè)計UI,并且需要將單元格的Identifier屬性設(shè)置為Cell(如圖1所示)。

設(shè)定集合視圖單元格的屬性
圖1、設(shè)定集合視圖單元格的屬性

? ? ? ?2、補(bǔ)充視圖
? ? ? ?集合視圖單元格可以使用UICollectionView的dequeueReusableSupplementaryViewOfKind:withReuseIdentifier:forIndexPath:方法獲得可重用的補(bǔ)充視圖,模式代碼如下:

? ? ? ?override func collectionView(collectionView: UICollectionView,
? ? ? ??viewForSupplementaryElementOfKind kind: String,
? ? ? ??atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView {

? ? ? ??var headerView: UICollectionReusableView = collectionView.
? ? ? ??dequeueReusableSupplementaryViewOfKind
? ? ? ??(UICollectionElementKindSectionHeader,
? ? ? ??withReuseIdentifier : "HeaderIdentifier", forIndexPath:indexPath)
? ? ? ??as UICollectionReusableView

? ? ? ??......
? ? ? ??return headerView
? ? ? ?}?

? ? ? ?- (UICollectionReusableView *)collectionView:(UICollectionView
? ? ? ??*)collectionView
? ? ? ??viewForSupplementaryElementOfKind:(NSString *)kind
? ? ? ??atIndexPath: (NSIndexPath *)indexPath
? ? ? ?{
? ? ? ??HeaderView *headerView = [collectionView
? ? ? ??dequeueReusableSupplementaryViewOfKind:
? ? ? ??UICollectionElementKindSectionHeader
? ? ? ??withReuseIdentifier:@"HeaderIdentifier" forIndexPath:indexPath];
? ? ? ??headerView.headerLabel.text = [self.eventDate objectAtIndex:indexPath.section];
? ? ? ??return headerView;
? ? ? ?}

? ? ? ?collectionView:viewForSupplementaryElementOfKind:atIndexPath:方法是集合視圖的數(shù)據(jù)源方法,其中HeaderView是我們自定義的繼承自UICollectionReusableView的補(bǔ)充視圖類。使用dequeueReusableSupplementaryViewOfKind:withReuseIdentifier:forIndexPath:時,需要使用故事板設(shè)計UI,并將補(bǔ)充視圖的Identifier屬性設(shè)置為HeaderIdentifier,如圖2所示。

設(shè)定補(bǔ)充視圖的屬性
圖2、設(shè)定補(bǔ)充視圖的屬性

400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號

歡迎您的光顧,我們將竭誠為您服務(wù)×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務(wù) 售后服務(wù)
 
備案專線 備案專線
 
售后服務(wù) 售后服務(wù)
 
×