设置内容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说"程序员的未来就是榨取程序员"
这个程序员对这个未来不满意,于是他又去问上帝。
"万能的上帝呀,请你告诉我,我的未来会怎样?"
上帝说"我的孩子,你去问侯捷,他写的计算机书的读者可能是地球上最多的"
于是他去问侯捷。
侯捷说"程序员的未来就是诱惑程序员"
这个程序员对这个未来不满意,于是他又去问上帝。
"万能的上帝呀,请你告诉我,我的未来会怎样?"
上帝摇摇头"唉,我的孩子,你还是别当程序员了")

posted @ 2013-05-09 20:13  坚固66  阅读(197)  评论(0编辑  收藏  举报