UI_UITableView_搭建

原创 2015年07月09日 19:10:11

创建 tableView

UITableViewStyle 有两种选择

#pragma mark - 创建 tableView
- (void)createTableView
{
    // 枚举类型共有两个
    self.mainTableView = [[UITableView alloc] initWithFrame:[UIScreen mainScreen].bounds style:UITableViewStylePlain];
    [self addSubview:self.mainTableView];
}

根视图控制器遵守协议

@interface RootViewController () <UITableViewDataSource, UITableViewDelegate>
- (void)viewDidLoad {
    [super viewDidLoad];

    // 设置数据源代理
    self.rootView.mainTableView.dataSource = self;

    // 设置 delegate
    self.rootView.mainTableView.delegate = self;

    self.title = @"联系人";

}

重写代理方法

返回分组的个数

#pragma -mark 返回分组的个数
// 默认为 1
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 2;
}

每个分组显示多少行数据 必须

#pragma mark - 每个分组显示多少行数据 *必须*
// dataSource 下方法
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.nameArray.count;
}

每行显示什么内容 必须

#pragma mark - 每行显示什么内容 *必须*
// dataSource 下方法
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    // 四种类型
    // UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:nil];


    // static 作用
    /**
     *  1、清零功能 static int a;
     *  2、保值作用
     *  3、隐藏功能 
     */

    // 静态变量 保值作用 只创建一次
    static NSString *cell_id = @"UITableViewCell";
    // 利用重用创建
    UITableViewCell *cell = nil;

    // 在重用池查找
    cell = [tableView dequeueReusableCellWithIdentifier:cell_id];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cell_id];
    }



    cell.textLabel.text = self.nameArray[indexPath.row];

//    indexPath.section  那个分组
//    indexPath.row    哪一行
    NSString *name = [NSString stringWithFormat:@"%ld.png", indexPath.row + 1];
    cell.imageView.image = [UIImage imageNamed:name];

    // 显示详细信息 cell 类型用 UITableViewCellStyleSubtitle
    cell.detailTextLabel.text = self.numberArray[indexPath.row];

    // 右侧附件按钮 枚举类型
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

    return cell;
}

row 的高度

#pragma mark - 跳转 row 的高度

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 80.0f;
}

返回分组的名字

#pragma mark - 返回分组的名字
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    if (section == 0) {
        return @"分组一";
    }
    return @"分组二";
}

设置分组头部

#pragma mark - 设置分组头部
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 50)];
    label.textAlignment = NSTextAlignmentCenter;
    label.textColor = [UIColor redColor];
    if (section == 0) {
        label.text = @"1组";
    } else {
        label.text = @"2组";
    }
    return label;
}

设置分组头部的高度

#pragma mark - 设置分组头部的高度
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return 60.0f;
}#pragma mark - 设置分组头部的高度
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return 60.0f;
}

cell 的点击事件

#pragma mark - cell 的点击事件
- (void)tableView:(UITableView *) tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // 取消选中状态
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    SecondViewController *secondVC = [[SecondViewController alloc] init];

    [self.navigationController pushViewController:secondVC animated:YES];
}

实现索引

#pragma mark - 实现索引
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
    return @[@"1组", @"2组"];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
版权声明:本文为outlan原创文章,未经博主允许不得转载。

相关文章推荐

iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建

iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建 一、实现效果 说明:该示例在storyboard中使用动态单元格来完成。 ...

IOS开发UI进阶之UITableView四

一 购物车骨架搭建- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath ...
  • ab20514
  • ab20514
  • 2015年10月06日 20:23
  • 280

iOS开发之UITableview之多种Cell高度自适应实现方案的UI流畅度分析

本篇博客的主题是关于UI操作流畅度优化的一篇博客,我们以TableView中填充多个根据内容自适应高度的Cell来作为本篇博客的使用场景。当然Cell高度的自适应网上的解决方案是铺天盖地呢,今天我们的...

UI初级之表视图UITableView自定义单元格

内容概要:  表视图之自定义单元格  一、直接在cell.contentView上添加组件来自定义cell //返回cell - (UITableViewCell *)tableView:(...

iOS开发UI篇—UITableview控件基本使用

iOS开发UI篇—UITableview控件基本使用 一、一个简单的英雄展示程序 NJHero.h文件代码(字典转模型) 1 #import 2 3 @interface NJ...

UI09_UITableView自定义写cell

自定义cell, UITableView

UI_UITableView界面传值(将前面的属性传值和协议传值结合起来)

UI_UITableView界面传值

IOS开发UI展示之UITableView ──分页加载更多

在ios开中中,由于屏幕尺寸限制,如果需要显示的数据很多,需要用到分页加载。 原理:先数据放到一个table中,先显示10条,table底部有一察看更多选项,点击察看更多查看解析的剩余数据。基本上就...

IOS开发UI展示之UITableView ──分页加载更多

在ios开中中,由于屏幕尺寸限制,如果需要显示的数据很多,需要用到分页加载。 原理:先数据放到一个table中,先显示10条,table底部有一察看更多选项,点击察看更多查看解析的剩余数据。基本上就...
  • topbar
  • topbar
  • 2013年11月09日 16:49
  • 1499

UI_UITableView异步加载图片

创建Movie的model@property (nonatomic, copy) NSString *movieId; @property (nonatomic, copy) NSString *mo...
  • ikohler
  • ikohler
  • 2015年04月08日 17:27
  • 167
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UI_UITableView_搭建
举报原因:
原因补充:

(最多只允许输入30个字)