如何在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. }