自定义cell时需要继承tabelviewcell.
若自定义cell使用nib文件时则需要重写一个初始化方法:
-(
id
)initWithNibName:(
NSString
*)name
if ( cell == nil ) {
cell = [[ PNTabelViewCell alloc ] initWithNibName : @"PNTabelViewCell" ];
这里的initWithNibName:是调用的自定义类里的方法: -( id )initWithNibName:( NSString *)name
}
if ( self ) {
NSArray *array = [[ NSBundle mainBundle ] loadNibNamed :name owner : self options : nil ];
self = ( PNTabelViewCell *)[array objectAtIndex : 0 ];
这里的initWithNibName是随便写不过这里的name为nib文件的名字在nib中需要注意几个方面:
1.
选定Tabel View Cell - cell时,在第三个选项卡里的class中指定你自定义的cell,也就是cell的文件名不然文件加载时找不到自定的cell,它会加载系统本身的uitabelviewcell。在第四个选项卡里的identify中将其改为:
-(
UITableViewCell
*)tableView:(
UITableView
*)tableView cellForRowAtIndexPath:(
NSIndexPath
*)indexPath
在这个方法里static NSString * identify= @"cell",这里的标示也就是@“”里的文字。
在这个方法里定义cell时直接使用自定义的cell进行初始化并调用自定义cell里的方法
例:
PNTabelViewCell
*
cell
= [tableView
dequeueReusableCellWithIdentifier
:string ];
if ( cell == nil ) {
cell = [[ PNTabelViewCell alloc ] initWithNibName : @"PNTabelViewCell" ];
这里的initWithNibName:是调用的自定义类里的方法: -( id )initWithNibName:( NSString *)name
}
2.
在file's owner中第三个选项卡里将class改为自定义cell的文件名。
3.
self
= [
super
init
];//自定义方法都必须调用super
if ( self ) {
NSArray *array = [[ NSBundle mainBundle ] loadNibNamed :name owner : self options : nil ];
self = ( PNTabelViewCell *)[array objectAtIndex : 0 ];
//这个数组中只有一个文件所以写0或last object或first object都一样
}。
}。
4.若托拽里面的空键需要拖到.h文件并且选定
Tabel View Cell - cell看一下里面在这里面空键是否与cell上面的空键关联。
若自定义cell时
没有使用nib文件
直接手写代码则须直接在本来存在的文件中进行手写所需要的空键就可以这个方法为:
-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
并且在
cell
= [[
PNTabelViewCell
alloc
]
init
];
调用这个方法就行,它自己本身会调用自定义cell里面的方法。
注:在自定义cell时,自定义cell上面的空键不要与系统中的名字一样,cell上面可以放任何空键,这些空键系统中本身会有,比如说:imageView,textLabel,datilLabel...像这些我们为了与它区分则
会在前面加一个m用以区分,如:mimageView,mtextLabel,mdatilLabel...