1

这是集合视图的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    ...
    [_teamsCollection registerClass:[MWTeamCollectionCell class] forCellWithReuseIdentifier:@"Cell"];

}
#pragma mark data source and delegate methods of collection view
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
    return 1;
}

-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
    return 10;
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *CellIdentifier = @"Cell";
    MWTeamCollectionCell *cell = [_teamsCollection dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
    if (cell == nil) {
        cell = (MWTeamCollectionCell*)[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    cell.teamName.text = @"team name";
    return cell;
}

当我调试线路return cell;时,我得到了正确的日志,但我没有看到单元格。

(gdb) po cell
<MWTeamCollectionCell: 0x72aff80; baseClass = UICollectionViewCell; frame = (0 0; 50 50); layer = <CALayer: 0x72b0090>>
(gdb) po cell
<MWTeamCollectionCell: 0x72b08e0; baseClass = UICollectionViewCell; frame = (67.5 0; 50 50); layer = <CALayer: 0x72b0970>>
(gdb) po cell
<MWTeamCollectionCell: 0x8aad380; baseClass = UICollectionViewCell; frame = (135 0; 50 50); layer = <CALayer: 0x8a72d20>>
4

3 回答 3

1

不需要像UITabeView这样注册类,试试这个:

[yourCollection registerClass:[MWTeamCollectionCell class] forCellWithReuseIdentifier:@"CellName"];

进而

- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    MWTeamCollectionCell *cell = [yourCollection dequeueReusableCellWithReuseIdentifier:@"CellName" forIndexPath:indexPath];
    //Setting some thing here

    return cell;

}

够了,记住 MWTeamCollectionCell:UICollectionViewCell 并在 MWTeamCollectionCell.m 中的 (id)init 中自定义(初始化您的团队名称标签)

并且 UICollectionView 仅适用于 iOS6,如果您尝试 iOS5,则没有显示

于 2013-01-16T13:37:00.487 回答
0

看起来您正在分配 UITableViewCell 而不是 UICollectionViewCell。

此外,根据您实现自定义收集单元的方式,确保笔尖已正确解码(加载)。我建议首先使用 UICollectionViewCell 来验证您在界面生成器中的插座和标识符名称是否正确。

于 2013-01-16T10:27:15.653 回答
0

替换此行

[yourCollection registerClass:[MWTeamCollectionCell class] forCellWithReuseIdentifier:@"CellName"]; 

使用以下工作线

UINib *cellNib = [UINib nibWithNibName:@"MWTeamCollectionCell" bundle:nil];    
[self.collectionView registerNib:cellNib forCellWithReuseIdentifier:@"CellName"];

对我来说效果很好。

于 2015-03-31T05:36:16.010 回答