gpt4 book ai didi

ios - dequeueReusableCellWithReuseIdentifier 不通过 init 或 initWithCoder 函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:28:07 25 4
gpt4 key购买 nike

UICollectionView 创建单元格时, dequeueReusableCellWithReuseIdentifier不通过 init也不initWithCoder CategoryView的功能.

View 正在创建,它有一个正确的类型(CategoryView)但是init也不initWithCoderCategoryView未被调用,因此基本功能未执行。这个 senario 中还有其他一些 init 吗?

- (CategoryView *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath {

CategoryView *cell = [cv dequeueReusableCellWithReuseIdentifier:@"CategoryView" forIndexPath:indexPath];
[cell someConfiguration];
return cell;
}

最佳答案

在这种情况下,问题在于未在 Interface Builder 中为您的单元格原型(prototype)指定基类。所以确保设置了基类:

enter image description here

然后,当您调用 dequeueReusableCellWithReuseIdentifier 时,使用您在原型(prototype)单元格中指定的 Storyboard标识符,它会在单元格首次实例化时调用 initWithCoder。如果单元格滚出 View 并稍后被另一个 NSIndexPath 重新使用,则 prepareForReuse被称为:

@interface CategoryView : UICollectionViewCell

@end

@implementation CategoryView

- (instancetype)initWithCoder:(NSCoder *)coder {
self = [super initWithCoder:coder];
if (self) {
NSLog(@"init");
}
return self;
}

- (void)prepareForReuse {
[super prepareForReuse];
NSLog(@"reuse");
}

@end

关于ios - dequeueReusableCellWithReuseIdentifier 不通过 init 或 initWithCoder 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24122043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com