如何在UICollectionViewCell上设置UILabel?

我用自定义和标准的UITableView单元做了几十次。 我的所有网点都已连接。 UILabel是IB中我的UICollectionViewCell的子视图。 我的UICollectionViewCell对象在身份检查器中inheritance适当的类。

如何在UICollectionViewCell上设置UILabel

MyCell.m

 -(void)setCellName:(NSString *)cellName { self.cellLabel.text = cellName; } 

ViewController.m

 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { ADMCell *cell = (ADMCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"ADMCell" forIndexPath:indexPath]; [cell setCellName:[NSString stringWithFormat:@"%d",[indexPath row]]]; return cell; } 

cell.debugDescription的输出:

 2013-05-15 22:05:40.191 ProductName[857:c07] cell.debugDescription: <ADMCell: 0xb35c890; baseClass = UICollectionViewCell; frame = (245 266; 70 80); layer = <CALayer: 0xb35c780>>` 

试试这对我有用。

cell.h文件

  #import <UIKit/UIKit.h> @interface CelebretiesCollectionViewCell : UICollectionViewCell { UIImageView *imgHairPhoto; } @property (nonatomic, retain) IBOutlet UILabel *titleLabel; @property (nonatomic, retain) IBOutlet UIImageView *imgHairPhoto; 

cell.m文件

  @synthesize titleLabel,imgHairPhoto; - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Initialization code NSArray *arrayOfViews = [[NSBundle mainBundle] loadNibNamed:@"CelebretiesCollectionViewCell" owner:self options:nil]; if ([arrayOfViews count] < 1) { return nil; } if (![[arrayOfViews objectAtIndex:0] isKindOfClass:[UICollectionViewCell class]]) { return nil; } self = [arrayOfViews objectAtIndex:0]; } return self; } @end 

//将xml中的collectionviewCell放在CollectionViewXib上。

在这里输入图像说明

/////////////////////////////////////

现在使用收集视图

  viewdidload method [self.YourCollectionViewObj registerClass:[CelebretiesCollectionViewCell class] forCellWithReuseIdentifier:@"celebretiesCollectionViewCell"]; //Datasource and delegate method - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { return [arrFavorites count];///Your array count } - (NSInteger)numberOfSectionsInCollectionView: (UICollectionView *)collectionView { return 1; } - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"celebretiesCollectionViewCell"; CelebretiesCollectionViewCell *cell; cell = (CelebretiesCollectionViewCell *)[YourCollectionViewObj dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath]; cell.frame=CGRectMake(0, 0, 150, 120);// set frame as per xib cell.imgHairPhoto.image=[UIImage imageWithData:[NSData dataWithContentsOfFile:strPath]]; cell.titleLabel.text = shrObj.strCelebrityName; return cell; } - (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout: (UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section { return UIEdgeInsetsMake(-10, 0, 0, 0); //set as per your requirements. }