UITableView

来源:互联网 发布:云计算的分类有哪些 编辑:程序博客网 时间:2024/06/10 20:56



UITableView


表视图 UITableView,iOS中最重要的视图,随处可见

表视图通常用来管理一组具有相同数据结构的数据

表视图继承自UIScrollView,所以可以滚动

表视图的每一条数据都是显示在UITableViewCell对象中

表视图可以分区显示数据,每个分区称为一个section,每一行称为row,编号都是从0开始





@implementation MainViewController

- (void)dealloc

{

    [_tableArray release];

    _tableArray = nil;

    [super dealloc];

}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    if (self) {

        // Custom initialization

        _tableArray = [[NSMutableArray alloc]init];

        [_tableArray addObject:@"刘喆"];

        [_tableArray addObject:@"刘少辉"];

        [_tableArray addObject:@"龚宁"];

        [_tableArray addObject:@"吴东阳"];

        [_tableArray addObject:@"侯迪"];

    }

    return self;

}

- (void)loadView

{

    [super loadView];

}

//状态栏 20  导航栏 44

- (void)viewDidLoad

{

    [super viewDidLoad];

    // Do any additional setup after loading the view.

    

    //设置透明度

    self.navigationController.navigationBar.translucent = NO;

    

    //创建一个 UITableView

    UITableView *tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320, self.view.frame.size.height - 64) style:UITableViewStylePlain];

    

    

    //设置代理人

    

    tableView.dataSource = self;

    tableView.delegate = self;

    //设置行高  UITableView中会出现很多行

    [tableView setRowHeight:50];

    

    //设置表头

    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0,0,100, 100)];

    [label setBackgroundColor:[UIColor blackColor]];

    [tableView setTableHeaderView:label]; //需要一个UIView类型的参数宽度和tableView的宽度相同高度自定义

    

    //设置分割线颜色

    [tableView setSeparatorColor:[UIColor cyanColor]];

    

    [self.view addSubview:tableView];

//    [label release];

    [tableView release];

}


- (void)didReceiveMemoryWarning

{

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

#pragma mark实现协议的方法

//一个section有多少row

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{


    //一个Section中有多少row

    //数组的元素个数

    if (section == 0) {

        return 3;

    } else {

        return 2;

    }

//    return [_tableArray count];

}

//该方法能为row添加cell(内容)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

    //设置重用池key

    static NSString *cellIdentify = @"cellIdentify";

    //cell

    //CustomTableViewCell自定义类 里面的控件放在 self.contentView

    CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentify];

    //判断cell是否存在

    if (!cell) {

    //如果不存在创建UITableViewCell 对象 并且放到重用池里

        cell = [[[CustomTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentify]autorelease]; //最后一个参数是重用池的key

    }

    

    //参数 indexPath有两个属性 一个是section 只的哪个区域 一个是row

    NSString *str =[_tableArray objectAtIndex:indexPath.row];

    //cell的内容

//    [cell.textLabel setText:str];

//    [cell.imageView setImage:[UIImage imageNamed:@"1.jpg"]];

//    [cell.detailTextLabel setText:@"hello"];

    [cell.label1 setText:str];

    

    return cell ;

}

//设置有多少个section

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

    return 3;

}

//设置section头标题的名称

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section;

{

    if (section == 0) {

        return @"A";

    } else{

        return @"B";

    }

}

//设置section脚标题的名称

- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section

{

    return @"TM来打我呀";

}

//设置行高

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

    

    return 50;

}

//设置section头标题的高度

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

{

    return 30;

}

//设置section脚标题的高度

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section

{

    return 30;

}

//右侧添加一个索引表

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView

{

    NSMutableArray *arr = [NSMutableArray array];

    for (int i = 65; i <= 90; i++) {

        [arr addObject:[NSString stringWithFormat:@"%c", i]];

    }

    return arr;

}

0 0
原创粉丝点击