博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[IOS]UITableView分区+索引显示
阅读量:5935 次
发布时间:2019-06-19

本文共 2658 字,大约阅读时间需要 8 分钟。

效果:


步骤:

1.创建一个ViewController,New File->Cocoa Touch->Objective-C class->Class:ViewController,Subclass of:UIViewController

2.打开xib,在view中添加TableView,并将TableView的两个属性拖到File's Owner中,

可以设置tableview的分区样式,选择style

3.ViewController.h:

#import 
@interface newViewController : UIViewController
@property (retain, nonatomic) IBOutlet UITableView *tableView; @property(retain,nonatomic)NSDictionary *dic; @property(retain,nonatomic)NSArray *keys; @end
4.ViewController.m:

#import "newViewController.h"  @interface newViewController ()  @end  @implementation newViewController  - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {     self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];     if (self) {         // Custom initialization     }     return self; }  - (void)viewDidLoad {     [super viewDidLoad];     NSString *path = [[NSBundle mainBundle] pathForResource:@"sortednames" ofType:@"plist"];     self.dic = [NSDictionary dictionaryWithContentsOfFile:path];          self.keys = [self.dic allKeys];     self.keys = [self.keys sortedArrayUsingSelector:@selector(compare:)]; }  //tableView有多少分区 -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {     return [self.keys count]; }  //每个分区对应多少行 -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {     NSString *key = self.keys[section];//通过第几个分区拿到对应的key     NSArray *arr = [self.dic objectForKey:key];//通过这个key获得对应的Array     return [arr count]; }  -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {     static NSString *str = @"str";     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:str];          if (cell == nil) {         cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:str];     }     int section = [indexPath section];     int row = [indexPath row];          NSString *key = self.keys[section];     NSArray *arr = [self.dic objectForKey:key];     cell.textLabel.text = arr[row];     return cell; } //在每个分区上显示什么内容 -(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {     return self.keys[section]; }  - (void)didReceiveMemoryWarning {     [super didReceiveMemoryWarning];     // Dispose of any resources that can be recreated. } //设置索引 -(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {     return self.keys; }  - (void)dealloc {     [_tableView release];     [self.keys release];     [self.dic release];     [super dealloc]; } @end
本文转蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366428,如需转载请自行联系原作者
你可能感兴趣的文章
农业物联网应用发展分析
查看>>
5G进度卡关 联发科应如何解困?
查看>>
工信部全面推进移动物联网(NB-IoT)建设发展
查看>>
微软员工:与纳德拉共事,像坐过山车一样刺激
查看>>
《Ext JS权威指南》——2.2节配置使用Ext JS库
查看>>
美第四大有线服务供应商宣布5年完成10Gbps光纤网络推广工作
查看>>
前三季度贵安新区完成大数据产业规模197.96亿元
查看>>
瞄准500亿元规模 湖北打造国家级大数据产业基地
查看>>
联想集团涨超7% 杨元庆持股比例升至8.12%
查看>>
知识产权服务商智慧芽完成C轮融资 红衫资本领投
查看>>
云计算出海!阿里云将成新加坡智慧国家战略“军师”
查看>>
美国新泽西光纤交易所扩建数据中心校园设施
查看>>
大杀器!苹果A10X处理器曝光:10nm工艺/全新GPU
查看>>
网络边界的迷失?关键要获得真实可视性
查看>>
城市智慧商圈将进行试点建设
查看>>
评论:是什么能够让英特尔、清华大学等三方携手?
查看>>
携手易维帮助台,神州数码轻松搞定IT外包服务
查看>>
珠海航展将首次利用大数据技术进行交通诱导
查看>>
梅耶尔将对雅虎“开刀”:裁员15%,关闭部分业务
查看>>
小网站架构优化-提升抗并发能力:子应用程序分离方案
查看>>