纯代码实现自定义UITableView的cell

纯代码实现自定义UITableView的cell


  1. 新建一个继承自UITableViewCell的类
  2. 重写initWithStyle:reuseIdentifier:方法,在里面实现:
    • 添加所有需要显示的子控件(不需要设置子控件的数据和frame,子控件要添加到contentView中)
    • 进行子控件一次性的属性设置(有些属性只需要设置一次, 比如字体\固定的图片)

BNPSettingCell.h文件:

/*本代码实现自定义cell的分隔线*/
#import <UIKit/UIKit.h>

@interface BNPSettingCell : UITableViewCell

/****这个位置可以定义一些需要的属性,方便外界传值****/
//往外界提供一个类方法,以便获取自定义的cell
+ (instancetype)cellWithTableView:(UITableView *)tableView;

@end

BNPSettingCell.m文件:

#import "BNPSettingCell.h"

@interface BNPSettingCell ()
@property (nonatomic,strong)UIView *viewLine;
@end

@implementation BNPSettingCell

+ (instancetype)cellWithTableView:(UITableView *)tableView{

    static NSString *ID = @"setting";
    //先从缓存池中找可重用的cell
    BNPSettingCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
    //没找到就创建
    if (cell == nil) {
        cell = [[BNPSettingCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
    }
    return cell;
}

//通过代码自定义cell需要重写以下方法,可以添加额外的控件.
-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{

    if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
        self.viewLine = [[UIView alloc]init];

        self.viewLine.backgroundColor = [UIColor blackColor];
        self.viewLine.alpha = 0.2;

        [self.contentView addSubview:self.viewLine];

    }
    return self;
}

//当父容器的frame发生改变时,会调用该方法,常常用来设置子控件的fram值
-(void)layoutSubviews{

    //这里一定要先调用父类的方法,否则你会很痛苦T_T
    [super layoutSubviews];
    self.viewLine.frame = CGRectMake(0, self.height - 1, [UIScreen mainScreen].bounds.size.width, 1);
}

@end
时间: 2024-08-25 02:56:22

纯代码实现自定义UITableView的cell的相关文章

iOS开发之自定义UITableView的cell

系统默认的UITableViewCell的每行都有横线(分隔符),就算没有数据也是如此,有时候我们想只在有数据的地方有下划线,可以去除下划线,然后在awarkFromNid方法中使用addsubview的方法加入下划线到UITableViewCell的contentView中.但有些时候我们还要自定义其他类型的Cell. 自定义cell有两种方法,一种是通过xid自定义控件,一种是通过代码自定义cell. 通过xid自定义cell的步骤: 新建一个xib文件描述一个view的内部结构(假设叫做M

qt 5 小练习 纯代码制作自定义按钮

大家都知道QT设计师中直接拖动的按钮是长方形带有圆角的图案,那我们如何来设置自定义按钮呢 要设计一个按钮,我们必须要知道按钮有什么属性,首先,按钮必须有一个位置 第二,按钮必须有一个名称.还有当我们点击按钮时他会做出什么样的反应.所以我们定义两个类, 一个QRect _rect; (或者QPoint 更为贴切吧) 第二个是 QString _text; 既然有反应,那我们第一想到的就是鼠标事件,添加一个bool _press; 以及 void mousePressEvent(QMouseEven

ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局

本文转自 :http://www.cnblogs.com/wendingding/p/3761730.html ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局 一.实现效果 二.使用纯代码自定义一个tableview的步骤 1.新建一个继承自UITableViewCell的类 2.重写initWithStyle:reuseIdentifier:方法 添加所有需要显示的子控件(不需要设置子控件的数据和frame,  子控件要添加到contentView中

iOS开发UI基础—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局

ios开发UI基础-使用纯代码自定义UItableviewcell实现一个简单的微博界面布局 一.实现效果 二.使用纯代码自定义一个tableview的步骤 1.新建一个继承自UITableViewCell的类 2.重写initWithStyle:reuseIdentifier:方法 添加所有需要显示的子控件(不需要设置子控件的数据和frame,  子控件要添加到contentView中) 进行子控件一次性的属性设置(有些属性只需要设置一次, 比如字体\固定的图片) 3.提供2个模型 数据模型:

iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(一)

iOS开发UI篇-以微博界面为例使用纯代码自定义cell程序编码全过程(一) 一.storyboard的处理 直接让控制器继承uitableview controller,然后在storyboard中把继承自uiviewcontroller的控制器干掉,重新拖一个tableview controller,和主控制器进行连线. 项目结构和plist文件 二.程序逻辑业务的处理 第一步,把配图和plist中拿到项目中,加载plist数据(非png的图片放到spooding files中) 第二步,字

IOS开发UI篇--UITableView的自定义布局==纯代码布局

UITableView中除了利用系统的UItableViewCell不能完成需求进行布局时,还可以进行自定义布局: 自定义布局分为两类:(1)利用代码进行创建 (2)利用xib进行实现: 下面对利用代码进行创建分析: 应用场景:像微博,等列表数据展示(由于微博的每个单元格的数据大小不一致,所以得计算每个单元格的大小) 分析:前提是获取列表数据,然后建立每个单元格的模型(建立单元格模型应继承UITableViewCell)复写 - (id)initWithStyle:(UITableViewCel

猫猫学IOS(十七)UI之纯代码自定义Cell实现新浪微博UI

猫猫分享,必须精品 素材代码地址:http://blog.csdn.net/u013357243/article/details/44976175 原文地址:http://blog.csdn.net/u013357243?viewmode=contents 先看效果图 编程思路 代码创建Cell的步骤 1> 创建自定义Cell,继承自UITableViewCell 2> 根据需求,确定控件,并定义属性 3> 用getter方法完成控件的实例化,只创建并添加到contentView,不处理

(素材源码)猫猫学IOS(十七)UI之纯代码自定义Cell实现新浪微博UI

猫猫分享,必须精品 素材代码地址:http://download.csdn.net/detail/u013357243/8580249 原文地址:http://blog.csdn.net/u013357243?viewmode=contents 先看效果图 编程思路 代码创建Cell的步骤 1> 创建自定义Cell,继承自UITableViewCell 2> 根据需求,确定控件,并定义属性 3> 用getter方法完成控件的实例化,只创建并添加到contentView,不处理位置 4&g

swift 之 纯代码创建 cell

初学swift 但是网上只有很多swift用xib创建的cell,就算是有也不是我想要的.今天自己弄了一个不用xib纯代码写的,来上代码 自定义cell 下面是controller 例外说一点懒加载 OC的懒加载 @property (nonatomic, strong) NSMutableArray * dataSource; - (NSMutableArray *)dataSource { if (!_dataSource) { _dataSource = [NSMutableArray a