[转]UITableViewCell的使用——自定义tableView视图

视图需要我们自己去定义样式时用到了TableViewCell组件,效果如下 
 
首先创建View Based App工程,在.xib文件中拖入一个Table View,前面我们说到了,这里就不再重复,注意连接协议和两个必须方法的实现。完成.h中代码 

C代码  收藏代码
  1. #import <UIKit/UIKit.h>  
  2. @interface TableViewCellViewController : UIViewController  
  3.             <UITableViewDelegate,UITableViewDataSource>{  
  4.                 IBOutlet UITableView *tView;  
  5. }  
  6. @property (nonatomic,retain)UITableView *tView;  
  7. @end  


完成.m中代码 

C代码  收藏代码
  1. #import "TableViewCellViewController.h"  
  2. #import "MyCell.h"  
  3. @implementation TableViewCellViewController  
  4. @synthesize tView;  
  5. - (void)viewDidLoad {  
  6.     [super viewDidLoad];  
  7. }  
  8. - (void)didReceiveMemoryWarning {  
  9.     [super didReceiveMemoryWarning];  
  10. }  
  11. - (void)dealloc {  
  12.     [tView release];  
  13.     [super dealloc];  
  14. }  
  15. -(NSInteger) tableView:(UITableView *)tableView  
  16.  numberOfRowsInSection:(NSInteger)section  
  17. {  
  18.     return 9;  
  19. }  
  20. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  
  21. {  
  22.     static NSString *CellIdentifier = @"CustomCellIdentifier";  
  23.     MyCell *cell = (MyCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];  
  24.     if (cell == nil) {  
  25.         NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"mycell" owner:self options:nil];  
  26.         cell = [array objectAtIndex:0];  
  27.         [cell setSelectionStyle:UITableViewCellSelectionStyleGray];  
  28.     }  
  29.     [[cell lable] setText:@"31"];  
  30.     [[cell lable1] setText:@"Raul"];  
  31.     [[cell myImage] setImage:[UIImage imageNamed:@"3316.jpg"]];  
  32.     return cell;  
  33. }  
  34. - (CGFloat)tableView:(UITableView *)atableView heightForRowAtIndexPath:(NSIndexPath *)indexPath     
  35. {         
  36.     return 120;  
  37. }  
  38. @end  


若不需要cell则改为: 
static NSString *CellIdentifier2 = @"Cell"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier2]; 
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier2] autorelease]; 
cell.textLabel.text =@"CCCCCCCC"; 
[cell.textLabel setFont:[UIFont fontWithName:@"Helvetica" size:16.0f]]; 
// cell.accessoryView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"sign_10x12.png"]]; 
cell.selectionStyle = UITableViewCellSelectionStyleBlue; 
[cell.textLabel setTextColor:[UIColor colorWithRed:0/255.0 green:106/255.0 blue:166/255.0 alpha:1.0]];
return cell; 
下面我们新建一个类,注意subclass选择UITableViewCell,名称为MyCell,生成之后再创建相应的xib文件
 
 
双击MyCell.xib,将Table View Cell拖入主窗口中,并且删除原主窗口中的View图标 
 
在.h文件中完成代码 

C代码  收藏代码
  1. #import <UIKit/UIKit.h>  
  2. @interface MyCell : UITableViewCell {  
  3.     IBOutlet UILabel *lable;  
  4.     IBOutlet UILabel *lable1;  
  5.     IBOutlet UIImageView *myImage;  
  6. }  
  7. @property(nonatomic,retain) UILabel *lable;  
  8. @property(nonatomic,retain) UILabel *lable1;  
  9. @property (nonatomic,retain) UIImageView *myImage;  
  10. @end  


在.m中完成代码 

C代码  收藏代码
  1. #import "MyCell.h"  
  2. @implementation MyCell  
  3. @synthesize lable,lable1,myImage;  
  4. - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {  
  5.     if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) {  
  6.         // Initialization code  
  7.     }  
  8.     return self;  
  9. }  
  10. - (void)setSelected:(BOOL)selected animated:(BOOL)animated {  
  11.   
  12.     [super setSelected:selected animated:animated];  
  13.   
  14.     // Configure the view for the selected state  
  15. }  
  16. - (void)dealloc {  
  17.     [myImage release];  
  18.     [lable release];  
  19.     [super dealloc];  
  20. }  
  21. @end  


最后我们看一下MyCell.xib中的连接,按住Ctrl拖入将要显示区域的文字和图片找到相应的接口即可。(注意:是myCell和文字和图片连接,不是file’s owner和文字和图片连接,我又犯这个错误了) 
 

posted @ 2012-05-21 17:48  Holyen  阅读(1020)  评论(0编辑  收藏  举报