如果控制器继承UITableViewController,
self.view=self.tableview
tableview的数据源和代理默认就是该控制器了
开发步骤:
1 新建一个继承自UITableViewCell类
2 先在
-(
instancetype
)initWithStyle:(
UITableViewCellStyle
)style reuseIdentifier:(
NSString
*)reuseIdentifier方法中添加所有需要显示的子控件(不需要设置数据和frame)
自定义cell一定要把子控件添加到contentView中
数据中不更改的也写在此方法中(子控件一次性的初始化)
设置cell的背景色
3 提供2个模型属性
数据模型:存放文字数据/图片模型
frame模型:存放数据模型\所有子控件得frame\cell的高度
4 cell拥有一个frame模型(不要直接拥有数据模型)
重写模型属性的setter方法,在这个方法中设置子控件的显示数据和frame
NSDictionary
*attrs=
@{
NSFontAttributeName
:
DXTNameFont
}
;
CGSize nameMaxSize= CGSizeMake ( MAXFLOAT , MAXFLOAT );
CGSize nameMaxSize= CGSizeMake ( MAXFLOAT , MAXFLOAT );
CGSize nameSize=[self.status.name boundingRectWithSize:nameMaxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
这个方法返回文字所在的矩形框
/*
计算文字尺寸
text 需要就算文字尺寸的文字
font 文字的字体
maxSize 文字的最大尺寸
*/
-( CGSize )textSizeWithText:( NSString *)text font:( UIFont *)font maxSize:( CGSize )maxSize{
NSDictionary *attrs= @{ NSFontAttributeName :font } ;
return [text boundingRectWithSize :maxSize options : NSStringDrawingUsesLineFragmentOrigin attributes :attrs context : nil ]. size ;
}
计算文字尺寸
text 需要就算文字尺寸的文字
font 文字的字体
maxSize 文字的最大尺寸
*/
-( CGSize )textSizeWithText:( NSString *)text font:( UIFont *)font maxSize:( CGSize )maxSize{
NSDictionary *attrs= @{ NSFontAttributeName :font } ;
return [text boundingRectWithSize :maxSize options : NSStringDrawingUsesLineFragmentOrigin attributes :attrs context : nil ]. size ;
}
自定义cell中控制图片显示不显示有yes必有no
cell去除分割线的方法
self
.
tableView
.
separatorStyle
=
UITableViewCellSeparatorStyleNone
;