问题描述
我已经使用自定义和标准UITableView
单元格进行了数十次此操作.我所有的插座都已连接. UILabel
是我的UICollectionViewCell
在IB中的子视图.我的UICollectionViewCell
对象继承了身份检查器中的适当类.
I've done this several dozen times with custom and standard UITableView
cells. All my outlets are connected. The UILabel
is a subview of my UICollectionViewCell
in IB. My UICollectionViewCell
object inherits the proper class in identity inspector.
如何在UICollectionViewCell
上设置UILabel
?
-(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的输出:
Output of 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
//在xib中获取collectionviewCell并在CollectionViewXib上放置插座.
// Take collectionviewCell in xib and make outlet on 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.
}
这篇关于如何在UICollectionViewCell上设置UILabel?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!