iOS开发之UI(十二)

自定义Cell

系统提供的Cell满足不了复杂的样式,因此:自定义Cell和自定义视图一样,自己床架哪一种符合我们要求的Cell并使用这个Cell

自定义Cell步骤:

  • 创建一个类继承于UITableViewCell
  • 实现UITableViewCell的初始化方法
  • 确保所有你想要添加的子视图都在自定义Cell的初始化方法中创建
  • 在Cell的子视图创建成功后,将子视图设置为属性

// 重写初始化方法
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
  if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
    // 创建图片视图对象
    self.iconImageView = [[UIImageView alloc] init];
    self.iconImageView.backgroundColor = [UIColor blueColor];
    [self.contentView addSubview:self.iconImageView];
    // 创建标题对象
    self.titleLabel = [[UILabel alloc] init];
    self.titleLabel.backgroundColor = [UIColor blueColor];
    [self.contentView addSubview:self.titleLabel];
    // 创建简介对象
    self.introduceLabel = [[UILabel alloc] init];
    self.introduceLabel.backgroundColor = [UIColor blueColor];
    [self.contentView addSubview:self.introduceLabel];
    
    // 布局
    CGFloat iconH = kHeight - 10;
    CGFloat iconW = (kWidth - 15) / 3;
    CGFloat labelH = (iconH - 5) / 3;
    
    self.iconImageView.frame = CGRectMake(5, 5, iconH, iconW);
    self.titleLabel.frame = CGRectMake(10 + iconW, 5, 2 * iconW, labelH);
    self.introduceLabel.frame = CGRectMake(10 + iconW, 10 + labelH, 2 * iconW, 2 * labelH);
}
return self;
}

// 布局子视图
- (void)layoutSubviews {
    CGFloat iconH = kHeight - 10;
    CGFloat iconW = (kWidth - 15) / 3;
    CGFloat labelH = (iconH - 5) / 3;

    self.iconImageView.frame = CGRectMake(5, 5, iconH, iconW);
    self.titleLabel.frame = CGRectMake(10 + iconW, 5, 2 * iconW, labelH);
    self.introduceLabel.frame = CGRectMake(10 + iconW, 10 + labelH, 2 * iconW, 2 * labelH);
}

本文不讨论自适应高度,因为至今还没有程序的方法来代码自定义创建Cell并且获取自适应高度,除非通过第三方类库。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容