initWithCoder不设置UILabel属性(UIFont和文本颜色)

时间:2012-10-26 23:20:03

标签: iphone objective-c ios ipad

我的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

然后它会工作。知道为什么吗?

1 个答案:

答案 0 :(得分:4)

当你的笔尖中的所有东西都已经加载并连接时,你想在awakeFromNib:中做这些事情

来自NSObject UIKit Additions

的文档
  

<强>讨论
  nib加载基础结构将awakeFromNib消息发送到从nib归档重新创建的每个对象,但仅在归档中的所有对象都已加载并初始化之后。