我的UICollectionViewCell
有以下代码@property (strong, nonatomic) IBOutlet UIImageView *storyImage;
@property (strong, nonatomic) IBOutlet UILabel *titleLabel;
@property (strong, nonatomic) IBOutlet UILabel *descriptionLabel;
@end
@implementation Story
@synthesize storyImage;
@synthesize titleLabel;
@synthesize descriptionLabel;
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self)
{
[self.contentView addSubview:self.titleLabel];
[self.contentView addSubview:self.descriptionLabel];
[self.contentView addSubview:self.storyImage];
[self.titleLabel setFont:[UIFont fontWithName:kProximaNovaBold size:15]];
[self.descriptionLabel setFont:[UIFont fontWithName:kProximaNova size:13]];
[self.descriptionLabel setTextColor:[UIColor colorWithWhite:140/255.f alpha:1.0]];
self.descriptionLabel.frame = CGRectIntegral(self.descriptionLabel.frame);
self.descriptionLabel.center = roundedCenterPoint(self.descriptionLabel.center);
}
return self;
}
但由于某种原因,它没有设置财产。我必须将它移出init方法并将其放在一个单独的方法中,并在调用后调用它:
dequeueReusableCellWithReuseIdentifier:kCellID forIndexPath:indexPath
然后它会工作。知道为什么吗?
答案 0 :(得分:4)
当你的笔尖中的所有东西都已经加载并连接时,你想在awakeFromNib:
中做这些事情
<强>讨论强>
nib加载基础结构将awakeFromNib消息发送到从nib归档重新创建的每个对象,但仅在归档中的所有对象都已加载并初始化之后。