iOS开发 自定义tableView样式(使用代码/使用Interface Builder)、分组显示、给TableView增加索引、给TableView增加SearchBariOS开发 自定义tab

本文介绍了如何在iOS开发中自定义TableView的样式,包括使用代码和Interface Builder创建自定义单元格,实现分组显示,添加索引以及SearchBar功能。通过代码示例详细展示了每个步骤的操作过程。
摘要由CSDN通过智能技术生成

1、使用代码

自定义tableView样式有两种方法,一种是用代码写cell的subView,另一种是导入nib文件(就是用Interface Builder设计),这篇笔记记录的是代码的方法.
1、新建一个Single View Application 项目,如前文,只选Use Automatic Reference Counting.
2、打开PDViewController.xib,拖进一个Table View,选中Table View,打开Connections inspector,拖动delegate和dataSource右边的小圆到File’s Owner.
3、新建文件,选Cocoa Touch—-Objective-C class,输入类名,我这是MyCell,Subclass of UItableViewCell.生成MyCell.h和MyCell.m两文件。
MyCell.h:
[cpp]  view plain copy
  1. #import <UIKit/UIKit.h>  
  2.    
  3. @interface MyCell : UITableViewCell  
  4. @property (copy,nonatomic) NSString *name;  
  5. @property (copy,nonatomic) NSString *color;  
  6. @end  

MyCell.m:
[cpp]  view plain copy
  1. #import "MyCell.h"  
  2. #define kNameTag 1  
  3. #define kColorTag 2  
  4. @implementation MyCell  
  5. @synthesize name=_name,color=_color;  
  6.    
  7. - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier  
  8. {  
  9.     self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];  
  10.     if (self) {  
  11.         // Initialization code  
  12.         CGRect nameLableRect=CGRectMake(0, 5, 100, 15);  
  13.         //定义一个距形,位置0,5,宽100高15,就是绝对定位  
  14.         UILabel *nameLable=[[UILabel alloc] initWithFrame:nameLableRect];  
  15.         //在距形定义的位置实例化一个UILable对象  
  16.         nameLable.tag=kNameTag;  
  17.         [self.contentView addSubview:nameLable];  
  18.    
  19.    
  20.         CGRect colorLableRect=CGRectMake(0, 30, 100, 15);  
  21.         //定义一个距形,距离上面的nameLable 10  
  22.         UILabel *colorLable=[[UILabel alloc] initWithFrame:colorLableRect];  
  23.         //在距形定义的位置实例化一个UILable对象  
  24.         colorLable.tag=kColorTag;  
  25.         [self.contentView addSubview:colorLable];  
  26.    
  27.    
  28.     }  
  29.     return self;  
  30. }  
  31.    
  32. - (void)setSelected:(BOOL)selected animated:(BOOL)animated  
  33. {  
  34.     [super setSelected:selected animated:animated];  
  35.    
  36.     // Configure the view for the selected state  
  37. }  
  38. //自己写name和color的setter方法  
  39. -(void)setName:(NSString *)name  
  40. {  
  41.     if(![name isEqualToString:_name])  
  42.     {  
  43.         _name=[name copy];  
  44.         UILabel * nameLable=(UILabel *)[self.contentView viewWithTag:kNameTag];  
  45.         //通过viewWithTag方法得到UILable  
  46.         nameLable.text=_name;  
  47.    
  48.     }  
  49. }  
  50. -(void)setColor:(NSString *)color  
  51. {  
  52.     if(![color isEqualToString:_color])  
  53.     {  
  54.         _color=[color copy];  
  55.         UILabel * colorLable=(UILabel *)[self.contentView viewWithTag:kColorTag];  
  56.         colorLable.text=_color;  
  57.    
  58.     }  
  59. }  
  60.    
  61.    
  62. @end  

PDViewControllor.h:
[cpp]  view plain copy
  1. #import <UIKit/UIKit.h>  
  2.    
  3. @interface PDViewController : UIViewController<UITableViewDelegate,UITableViewDataSource>  
  4. //简单起见,不再定义数据,每行数据都一样  
  5. @end  

PDViewController.m
[cpp]  view plain copy
  1. #import "PDViewController.h"  
  2. #import "MyCell.h"  
  3. @implementation PDViewController  
  4.    
  5. - (void)didReceiveMemoryWarning  
  6. {  
  7.     [super didReceiveMemoryWarning];  
  8.     // Release any cached data, images, etc that aren't in use.  
  9. }  
  10.    
  11. #pragma mark - View lifecycle  
  12.    
  13. - (void)viewDidLoad  
  14. {  
  15.     [super viewDidLoad];  
  16.     // Do any additional setup after loading the view, typically from a nib.  
  17. }  
  18.    
  19. - (void)viewDidUnload  
  20. {  
  21.     [super viewDidUnload];  
  22.     // Release any retained subviews of the main view.  
  23.     // e.g. self.myOutlet = nil;  
  24. }  
  25.    
  26. - (void)viewWillAppear:(BOOL)animated  
  27. {  
  28.     [super viewWillAppear:animated];  
  29. }  
  30.    
  31. - (void)viewDidAppear:(BOOL)animated  
  32. {  
  33.     [super viewDidAppear:animated];  
  34. }  
  35.    
  36. - (void)viewWillDisappear:(BOOL)animated  
  37. {  
  38.     [super viewWillDisappear:animated];  
  39. }  
  40.    
  41. - (void)viewDidDisappear:(BOOL)animated  
  42. {  
  43.     [super viewDidDisappear:animated];  
  44. }  
  45.    
  46. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
  47. {  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值