之前一直是使用XIB做UITableViewCell的自定义,后面改用代码之后需要注意的是。手写代码在UITableViewCell的initWithStyle里面添加控件。
-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self)
{
self.myLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 10, 50, 30)];
[self.contentView addSubview:self.myLabel];
self.myLabel.text = @"";
}
return self;
}
之前一直在下面两个系统自带的方法里面添加控制,导致初始化控件不能正常显示数据内容。
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
和
- (void)awakeFromNib {
// Initialization code
}
XIB自定义cell里面需要注意的是cell是loadNibNamed是一个数组,下面才是正确的方式
if (cell == nil) {
NSArray *cells;
cells = [[NSBundle mainBundle] loadNibNamed:@"XRTimeTableViewCell" owner:self options:nil];
for (id obj in cells) {
if ([obj isKindOfClass:[XRTimeTableViewCell class]]) {
cell = (XRTimeTableViewCell*)obj;
}
}
}
附上手写代码、XIB demo代码源码
http://pan.baidu.com/s/1kTMjrWN