//
// RootViewController.m
// UI9_UITableView协议方法
//
// Created by YIem on 15/12/17.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

import "RootViewController.h"

@interface RootViewController ()<UITableViewDataSource, UITableViewDelegate>

@end

@implementation RootViewController

  • (void)viewDidLoad {

    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor = [UIColor whiteColor];
    
    
    //////tableView
    
    UITableView *tableView = [[UITableView alloc]initWithFrame:self.view.bounds style:UITableViewStylePlain];
    tableView.delegate = self;
    tableView.dataSource = self;
    [self.view addSubview:tableView];
    [tableView release];
    // tableView的头部脚部区域
    // 头 (只有高度起作用)
    UIView *header = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
    header.backgroundColor = [UIColor redColor];
    tableView.tableHeaderView = header;
    // 脚(x值和高度起作用)
    UIView *foot = [[UIView alloc]initWithFrame:CGRectMake(0, 100, 100, 100)];
    foot.backgroundColor  = [UIColor yellowColor];
    tableView.tableFooterView = foot;
    
    // tableView结构
    // tableHeaderView + tableView + tableFooterView
    // tableView -> section + row
    // section -> header + row + footer
    

}

warning 必须实现的两个协议方法

// 行数

  • (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
    return 10;
    }
  • (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
    }

// 设置cell

  • (UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
    if (!cell) {

    cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"] autorelease];

    }

    // 设置
    // indePath 定位信息 包含section和row
    cell.textLabel.text = [NSString stringWithFormat:@"s: %ld, r: %ld", indexPath.section, indexPath.row];
    return cell;
    }

pragma mark - 其他协议方法

  • (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    {
    return 3;
    }

// 分区头名称

  • (NSString )tableView:(UITableView )tableView titleForHeaderInSection:(NSInteger)section
    {
    return @"头头头";
    }

// 分区脚部名称

  • (NSString )tableView:(UITableView )tableView titleForFooterInSection:(NSInteger)section
    {
    return @"脚脚脚";
    }

// 自定义头部区域

  • (UIView )tableView:(UITableView )tableView viewForHeaderInSection:(NSInteger)section
    {
    UIView *header = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
    header.backgroundColor = [UIColor grayColor];
    return [header autorelease];
    }

// 自定义脚部区域

  • (UIView )tableView:(UITableView )tableView viewForFooterInSection:(NSInteger)section
    {
    UIView *footer = [[UIView alloc]init];
    footer.backgroundColor = [UIColor blackColor];
    return [footer autorelease];

    }

// 高度控制
// 行高

  • (CGFloat)tableView:(UITableView )tableView heightForRowAtIndexPath:(NSIndexPath )indexPath
    {
    return 100;
    }

// 头部高度

  • (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
    {
    return 50;
    }

// 脚部高度

  • (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
    {
    return 150;
    }

// tableView右部索引栏

  • (NSArray )sectionIndexTitlesForTableView:(UITableView )tableView
    {
    return @[@"a", @"1", @"啦"];
    }

// tableView点击方法

  • (void)tableView:(UITableView )tableView didSelectRowAtIndexPath:(NSIndexPath )indexPath
    {

    NSLog(@"点击");
    // 取消选中效果
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    }

/*

pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation

  • (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.

    }

*/

@end