• 设置内容IOS开发(51)之UITableView建立索引搜索


    废话就不多说了,开始。。。

        

    1 言前

        昨天任务时候碰到TableView的建立索引问题,由于有的时候TableView中之的数据量非常之大,以至于需要在侧右建立索引来搜索,日今意特理整于上面,供大家参考,互相学习。

        

    2 代码实例

        ZYViewController.h

        

    #import <UIKit/UIKit.h>
    
    @interface ZYViewController : UITableViewController
    <UITableViewDataSource, UITableViewDelegate>
    //设置索引题标
    @property(nonatomic,retain)NSMutableArray *indexArray;
    //设置每一个section下的cell内容
    @property(nonatomic,retain)NSArray *dataArray1;
    @property(nonatomic,retain)NSArray *dataArray2;
    @property(nonatomic,retain)NSArray *dataArray3;
    @end

        ZYViewController.m

        

        每日一道理
    “多难兴才”曾一度被人定为规律。请看:屈原被放逐而作《离骚》;司马迁受宫刑而作《史记》;欧阳修两岁丧父笃学而成才;曹雪芹举家食粥而写出了不朽的《红楼梦》;越王勾践卧薪尝胆而雪洗国耻;韩信遭胯下辱而统率百万雄兵……他们都是在与逆境搏斗中成为伟人的!
    @synthesize dataArray1,dataArray2,dataArray3;
    @synthesize indexArray;
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        NSArray *array1=[[NSArray alloc] initWithObjects:@"A",@"B",@"C",@"D",@"E" ,nil];
        NSArray *array2=[[NSArray alloc] initWithObjects:@"F",@"G",@"H",@"I",@"J", nil];
        NSArray *array3=[[NSArray alloc] initWithObjects:@"K",@"L",@"M",@"N",@"O", nil];
        self.dataArray1=array1;
        self.dataArray2 = array2;
        self.dataArray3 = array3;
        //给组数值赋
        NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:5];
        self.indexArray = array;
        [array release];
        [indexArray addObjectsFromArray:array1];
        [indexArray addObjectsFromArray:array2];
        [indexArray addObjectsFromArray:array3];
        [array1 release];
        [array2 release];
        [array3 release];
    }
    //设置Section的Header的值
    - (NSString *)tableView:(UITableView *)tableView
    
    titleForHeaderInSection:(NSInteger)section {
        
        NSString *key = [indexArray objectAtIndex:section];
        
        return key;
        
    }
    
    #pragma mark -
    
    #pragma mark Table View Data Source Methods
    
    //设置表格的索引组数
    -(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
    {
        return self.indexArray;
    }
    ////答应数据源告诉必须加载到Table View中的表的Section数。
    -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    
        return 3;
    }
    //设置表格的行数为组数的素元个数
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        if (section==0) {
             return [self.dataArray1 count];
        }else if(section==1)
            return dataArray2.count;
        else 
            return dataArray3.count;
       
    }
    //每一行的内容为组数应相索引的值
    // Customize the appearance of table view cells.
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *CellIdentifier = @"Cell";
        
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil)
        {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
            cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
        }
        if(indexPath.section==0)
        //设置单元格的字符串内容
        cell.textLabel.text=[self->dataArray1 objectAtIndex:indexPath.row];
        else if(indexPath.section==1)
            //设置单元格的字符串内容
            cell.textLabel.text=[self->dataArray2 objectAtIndex:indexPath.row];
        else
            //设置单元格的字符串内容
            cell.textLabel.text=[self->dataArray3 objectAtIndex:indexPath.row];
        return cell;
    }
    -(void)dealloc{
        [indexArray release];
        [dataArray1 release];
        [dataArray2 release];
        [dataArray3 release];
        [super dealloc];
    }

        行运结果:

        设置和内容

        

    3 结语

        以上就是全部内容,望希对大家有所帮助

        Demo下载地址:http://download.csdn.net/detail/u010013695/5347887

    文章结束给大家分享下程序员的一些笑话语录: 一个程序员对自己的未来很迷茫,于是去问上帝。
    "万能的上帝呀,请你告诉我,我的未来会怎样?"
    上帝说"我的孩子,你去问Lippman,他现在领导的程序员的队伍可能是地球上最大的"
    于是他去问Lippman。
    Lippman说"程序员的未来就是驾驭程序员"
    这个程序员对这个未来不满意,于是他又去问上帝。
    "万能的上帝呀,请你告诉我,我的未来会怎样?"
    上帝说"我的孩子,你去问Gates,他现在所拥有的财产可能是地球上最多的"
    于是他去问Gates。
    Gates说"程序员的未来就是榨取程序员"
    这个程序员对这个未来不满意,于是他又去问上帝。
    "万能的上帝呀,请你告诉我,我的未来会怎样?"
    上帝说"我的孩子,你去问侯捷,他写的计算机书的读者可能是地球上最多的"
    于是他去问侯捷。
    侯捷说"程序员的未来就是诱惑程序员"
    这个程序员对这个未来不满意,于是他又去问上帝。
    "万能的上帝呀,请你告诉我,我的未来会怎样?"
    上帝摇摇头"唉,我的孩子,你还是别当程序员了")

  • 相关阅读:
    Elasticsearchheader、Kibana实现对ES的可视化
    记录Elasticsearch 分片恢复问题
    跨域问题处理手册
    MySQLJSON与虚拟列结合使用提升性能
    Mysql 备份恢复与xtrabackup备份
    Delphi中将ShowMessage,MessageDlg, MessageBox,InputBox,InputQuery及任意模态窗口相对主窗口(父窗口、母窗口)居中
    Python里的引用与拷贝规律
    「Codeforces 1644F」Basis
    记录
    swift 标签2
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3069797.html
Copyright © 2020-2023  润新知