通常大家都是用UITableView的两种形式,UITableViewStylePlain,UITableViewStyleGrouped; 其实还有一种类似系统 自带通讯录的那种 Section

通常大家都是用UITableView的两种形式,UITableViewStylePlain,UITableViewStyleGrouped;
其实还有一种类似系统 自带通讯录的那种 Section 样式 在UITableViewStylePlain这种模式下实现;

@interface HomeViewController : UIViewController<UITableViewDelegate,UITableViewDataSource>{

UITableView *listTableView;
NSArray *sectionTitleArray;

}

@end

//
// HomeViewController.m
// TestTableview
//
// Created by haifeng on 13-9-12.
// Copyright (c) 2013年 haifeng. All rights reserved.
//

import “HomeViewController.h”

@interface HomeViewController ()

@end

@implementation HomeViewController

  • (id)initWithNibName:(NSString )nibNameOrNil bundle:(NSBundle )nibBundleOrNil
    {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
    // Custom initialization
    }
    return self;
    }

  • (void)viewDidLoad
    {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    sectionTitleArray = [NSArray arrayWithObjects:@”1-10”,@”11-20”,@”21-30”,@”31-40”,@”41-50”,@”51-60”,@”61-70”,@”71-80”,@”81-90”,@”91-100”, nil];

    UITableView *tv = [[UITableView alloc] initWithFrame:self.view.bounds];
    tv.dataSource = self;
    tv.delegate = self;
    listTableView = tv;
    [self.view addSubview:tv];

    UIView *hview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320.f, 200.f)];
    hview.backgroundColor = [UIColor orangeColor];
    listTableView.tableHeaderView = hview;
    }

//右边索引 字节数(如果不实现 就不显示右侧索引)
- (NSArray )sectionIndexTitlesForTableView:(UITableView )tableView {

return sectionTitleArray;
}

//section (标签)标题显示
- (NSString )tableView:(UITableView )tableView titleForHeaderInSection:(NSInteger)section {

return [sectionTitleArray objectAtIndex:section];
}

//标签数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 10;
}

// 设置section的高度
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
if (section == 0) {
return 80;
}
return 20;
}

//点击右侧索引表项时调用
- (NSInteger)tableView:(UITableView )tableView sectionForSectionIndexTitle:(NSString )title atIndex:(NSInteger)index {

NSString *key = [sectionTitleArray objectAtIndex:index];
NSLog(@"sectionForSectionIndexTitle key=%@",key);
if (key == UITableViewIndexSearch) {
    [listTableView setContentOffset:CGPointZero animated:NO];
    return NSNotFound;
}

return index;
}

  • (UIView )tableView:(UITableView )tableView viewForHeaderInSection:(NSInteger)section{

    UIView *v = nil;
    if (section == 0) {
    v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 80)];
    [v setBackgroundColor:[UIColor grayColor]];

    UILabel *labelTitle = [[UILabel alloc] initWithFrame:CGRectMake(50.0f, 10.0f, 200.0f, 30.0f)];
    [labelTitle setBackgroundColor:[UIColor clearColor]];
    labelTitle.textAlignment = NSTextAlignmentCenter;
    labelTitle.text = @"第一个section 定制页面";
    [v addSubview:labelTitle];
    

    }

    return v;
    }

// 设置cell的高度
- (CGFloat)tableView:(UITableView )atableView heightForRowAtIndexPath:(NSIndexPath )indexPath
{
return 44;
}

  • (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    return 10;
    }

  • (UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *detailIndicated = @”tableCell”;

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:detailIndicated];

    if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:detailIndicated];
    cell.tag = indexPath.row;
    }
    cell.textLabel.text = [NSString stringWithFormat:@”%d”,10*indexPath.section + indexPath.row + 1];

    return cell;
    }

  • (void)didReceiveMemoryWarning
    {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
    }

@end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值