• <转>UITableView带section的使用


    通常大家都是用UITableView的两种形式,UITableViewStylePlain,UITableViewStyleGrouped;

    其实还有一种类似系统 自带通讯录的那种   Section 样式 在UITableViewStylePlain这种模式下实现;
     
    例子如下:

    //

    //  HomeViewController.h

    //  TestTableview

    //

    //  Created by haifeng on 13-9-12.

    //  Copyright (c) 2013年 haifeng. All rights reserved.

    //

    #import

    @interface HomeViewController :UIViewController<</span>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

  • 相关阅读:
    位置定位 api
    代理相关
    手机网页 右边的空白区
    sip介绍
    测试浏览器对html5支持
    sencha touch
    PC上的手机模拟器大全(安卓/苹果/黑莓/塞班/微软)
    测试视频
    android 环境配置 与 运行错误
    android 一年过期
  • 原文地址:https://www.cnblogs.com/zhxming/p/4904247.html
Copyright © 2020-2023  润新知