ios开发 使用纯代码自定义UItableviewcell

本文介绍了在iOS开发中如何使用纯代码自定义UITableViewCell的详细步骤,包括创建自定义cell类,设置子视图,数据模型和frame模型的使用,以及关键代码的实现。此外,还提到了自定义表格视图在不同场景下的适用选择,如xib创建和纯代码创建的优缺点。
摘要由CSDN通过智能技术生成

ios开发UI篇—使用纯代码自定义UItableviewcell

一、实现效果

 

二、使用纯代码自定义一个tableview的步骤

1.新建一个继承自UITableViewCell的类

2.重写initWithStyle:reuseIdentifier:方法

添加所有需要显示的子控件(不需要设置子控件的数据和frame,  子控件要添加到contentView中)

进行子控件一次性的属性设置(有些属性只需要设置一次, 比如字体\固定的图片)

3.提供2个模型

数据模型: 存放文字数据\图片数据

frame模型: 存放数据模型\所有子控件的frame\cell的高度

4.cell拥有一个frame模型(不要直接拥有数据模型)

5.重写frame模型属性的setter方法: 在这个方法中设置子控件的显示数据和frame 

6.frame模型数据的初始化已经采取懒加载的方式(每一个cell对应的frame模型数据只加载一次)

三、文件结构和实现代码

1.文件结构

 

2.实现代码:

NJWeibo.h文件

复制代码
 1 #import <Foundation/Foundation.h>
 2 
 3 @interface NJWeibo : NSObject
 4 @property (nonatomic, copy) NSString *text; // 内容
 5 @property (nonatomic, copy) NSString *icon; // 头像
 6 @property (nonatomic, copy) NSString *name; // 昵称
 7 @property (nonatomic, copy) NSString *picture; // 配图
 8 @property (nonatomic, assign) BOOL vip;
 9 
10 - (id)initWithDict:(NSDictionary *)dict;
11 + (id)weiboWithDict:(NSDictionary *)dict;
12 @end
复制代码

NJWeibo.m文件

复制代码
 1 #import "NJWeibo.h"
 2 
 3 @implementation NJWeibo
 4 
 5 - (id)initWithDict:(NSDictionary *)dict
 6 {
 7     if (self = [super init]) {
 8         [self setValuesForKeysWithDictionary:dict];
 9     }
10     return self;
11 }
12 
13 + (id)weiboWithDict:(NSDictionary *)dict
14 {
15     return [[self alloc] initWithDict:dict];
16 }
17 
18 @end
复制代码

NJWeiboCell.h文件

复制代码
 1 #import <UIKit/UIKit.h>
 2 @class NJWeiboFrame;
 3 
 4 @interface NJWeiboCell : UITableViewCell
 5 /**
 6  *  接收外界传入的模型
 7  */
 8 //@property (nonatomic, strong) NJWeibo *weibo;
 9 
10 @property (nonatomic, strong) NJWeiboFrame *weiboFrame;
11 
12 + (instancetype)cellWithTableView:(UITableView *)tableView;
13 @end
复制代码

NJWeiboCell.m文件

复制代码
  1 #import "NJWeiboCell.h"
  2 #import "NJWeibo.h"
  3 #import "NJWeiboFrame.h"
  4 
  5 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值