簡體   English   中英

iOS-缺少將自定義UICollectionViewCell添加到UICollectionView的功能

[英]iOS — missing something adding a custom UICollectionViewCell to a UICollectionView

我試圖定義我自己的自定義UICollectionViewCell實現並在UICollectionView使用它。 這是我所做的。

1-我正在使用情節提要。

2-我將UICollectionView添加到另一個視圖,這是故事板上的一個場景。

3-我將datasource和集合的delegate指向了場景的控制器。

4-我在控制器中提供了所需方法的實現。

5-我創建了一個單元格視圖.h.m文件。 .h文件中

@interface HscCellView : UICollectionViewCell

6-我創建了一個新視圖,所以得到了一個新畫布,並且在右側的適當部分中指定了我的類名(與步驟5中相同),並提供了唯一的標識符。
7-在場景控制器中,我在.h文件中為我拖入的集合視圖定義了一個出口。

@property (nonatomic, strong) IBOutlet UICollectionView *holesCollectionView;

然后在viewDidLoad

[self.holesCollectionView registerClass:[HscCellView class] forCellWithReuseIdentifier:@"cellView"];

請注意, cellView是我為自定義單元xib指定的唯一標識符。

8-最后,我實現了

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    HscCellView *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cellView" forIndexPath:indexPath];

    return cell;

}

啟動應用程序時,會得到一堆單元格視圖(9,因為我在numberOfItemsInSection消息上指定了9),但它們不是我的自定義單元格視圖。 它們沒有大小,顏色或標簽。 我沒有看到任何錯誤。 我被卡住了。

一些輔助問題。

  • 什么時候使用注冊筆尖,什么時候注冊類名? 我已經看到它同時完成了兩種工作,但是看來您幾乎總是以筆尖和類定義代碼結尾,是嗎?

  • 在第6步中,當我在畫布中為自定義單元格視圖指定唯一ID時,這是否意味着我不需要在viewDidLoad注冊該類?

我知道了。 我會盡力解釋,如果我做錯了,希望會得到糾正。 我認為這對其他人會有幫助。 根據我的問題的評論,我確定實際上正在加載我的類的實例。 但是,XIB被忽略了。 這意味着在加載我的課程時,並未使用xib。 因此,在問題的第7步中

UINib *nib = [UINib nibWithNibName:@"HscCellView" bundle:nil];
    [self.holesCollectionView registerNib:nib forCellWithReuseIdentifier:@"cellView"];

而不是注冊課程,現在一切正常。

我很好奇為什么,因為我將xib與我的自定義類鏈接了,所以這是必要的,但是我不再陷入困境。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM