gpt4 book ai didi

iphone - UICollectionView 单元格 Nib 未加载

转载 作者:搜寻专家 更新时间:2023-10-30 20:00:18 25 4
gpt4 key购买 nike

我正在使用 UICollectionViewFlowLayout 的自定义子类,它允许对单元格进行重新排序。源代码here .

我遇到的问题是,尽管注册并使用了正确的标识符,但我为 Collection View 创建的 nib 文件没有加载。以下是相关的代码片段。

这是在 View Controller .m 文件中:

- (void)loadView
{
self.reorderLayout = [[LXReorderableCollectionViewFlowLayout alloc] init];

self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero
collectionViewLayout:self.reorderLayout];

UINib *nib = [UINib nibWithNibName:@"CatagoryViewCell" bundle:nil];
[self.collectionView registerNib:nib forCellWithReuseIdentifier:@"CatagoryViewCellID"];

self.collectionView.dataSource = self;
self.collectionView.delegate = self;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
Catagory *c = [[[CatagoryStore defaultStore] allCatagories]
objectAtIndex:[indexPath item]];

CatagoryViewCell *cell = (CatagoryViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"CatagoryViewCellID" forIndexPath:indexPath];

[cell setController:self];

[[cell nameLabel] setText:c.title];
return cell;
}

这是我唯一提到 Nib 的两个地方。

这是单元格 Nib : enter image description here

这是它在模拟器和设备中的样子:

enter image description here

我尝试使用类似的代码和原始的 UICollectionViewFlowLayout 类,它工作正常。非常感谢任何见解!

最佳答案

尝试在 CollectionViewCell.m 中使用这个“initWithFrame”方法

-(id)initWithFrame:(CGRect)frame {

self = [super initWithFrame:frame];

if (self) {
NSString *cellNibName = @"YourCollectionViewCell";
NSArray *resultantNibs = [[NSBundle mainBundle] loadNibNamed:misVentasCellNibName owner:nil options:nil];

if ([resultantNibs count] < 1) {
return nil;
}

if (![[resultantNibs objectAtIndex:0] isKindOfClass:[UICollectionViewCell class]]) {
return nil;
}
self = [resultantNibs objectAtIndex:0];
}

return self;
}

然后在你有 de collection View 的类中添加:

[collectionView registerClass:[YourCollectionViewCell class] forCellWithReuseIdentifier:@"YourCollectionViewCell"];

最后

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

// Setup cell identifier
static NSString *cellIdentifier = @"YourCollectionViewCell";

YourCollectionViewCell *cell = (YourCollectionViewCell *)[cvArticles dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
}

请记住,您必须在 your.xib 中插入您在 Collection View 的 Identifier 字段中使用的相同 cellIdentifier!!!!!!!!

关于iphone - UICollectionView 单元格 Nib 未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16347897/

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