isa*_*sal 3 iphone xcode objective-c uicollectionview uicollectionviewcell
我正在使用一个UICollectionViewFlowLayout允许重新排序单元格的自定义子类.源代码在这里.
我遇到的问题是,尽管注册并使用正确的标识符,我为Collection View创建的nib文件仍未加载.以下是相关的代码段.
这是在视图控制器.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;
}
Run Code Online (Sandbox Code Playgroud)
这是我引用笔尖的唯一两个地方.
这是单元格笔尖:

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

我尝试使用类似的代码和原始UICollectionViewFlowLayout类,它工作正常.非常感谢任何见解!
小智 6
在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;
}
Run Code Online (Sandbox Code Playgroud)
然后在课程中你有de collection view add:
[collectionView registerClass:[YourCollectionViewCell class] forCellWithReuseIdentifier:@"YourCollectionViewCell"];
Run Code Online (Sandbox Code Playgroud)
最后
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
// Setup cell identifier
static NSString *cellIdentifier = @"YourCollectionViewCell";
YourCollectionViewCell *cell = (YourCollectionViewCell *)[cvArticles dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
}
Run Code Online (Sandbox Code Playgroud)
请记住,您必须在your.xib中插入您在Collection视图的Identifier字段中使用的相同cellIdentifier !!!!!!!!
| 归档时间: |
|
| 查看次数: |
5681 次 |
| 最近记录: |