[英]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.