美文网首页
iOS开发之UI(十二)

iOS开发之UI(十二)

作者: zero点点 | 来源:发表于2016-02-22 22:29 被阅读25次

    自定义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并且获取自适应高度,除非通过第三方类库。

    相关文章

      网友评论

          本文标题:iOS开发之UI(十二)

          本文链接:https://www.haomeiwen.com/subject/icubkttx.html