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原创文章,未经博主允许不得转载。

DataGuard之DG环境搭建

oracle dg datagurad failover switchover flashback broker oracle broker
  • shiyu1157758655
  • shiyu1157758655
  • 2017年02月16日 11:04
  • 2832

vpn 搭建

采用PPTP搭建VPN,优点是配置简单快捷。将亲身过程记录下来供亲们参考,并将过程中遇到的问题也一一列举出来解决方式。。。   直接上步骤: 1.第一步需要安装PPTP,以用来提供VPN服务. ...
  • w445816837
  • w445816837
  • 2017年06月21日 14:31
  • 619

分享一下搭建SS教程

分享一下搭建SS教程由于本文学术需求,需要再谷歌学术上找文章,因此费尽心思搭了个SS,当然其中少不了 大神 的帮忙,下面简单分享一下:1. 购买服务器经过推荐购买的是Conaha的服务器,用到目前为...
  • wudaxiaosheng
  • wudaxiaosheng
  • 2015年12月23日 21:54
  • 11501

openstack手动搭建

版本选择CentOS 7 2、修改主机名 3、配置网络:NAT(vmnet8)模式重新配置网卡地址,而Internet(vmnet1)则无需修改,保持激活状态即可。并测试网络连通状...
  • zaizai116561
  • zaizai116561
  • 2017年07月21日 19:45
  • 451

jira搭建

实习公司最近安排我,在公司服务器上搭建jira,用于大家的任务发布、bug跟踪等,越来越规范化了~~~趁机接触了很多正规公司都在使用的交流平台,抓紧开始搭建了,参考了网上好多搭建步骤,以下是我搭建的过...
  • lianxinjoy
  • lianxinjoy
  • 2015年07月02日 20:28
  • 430

Nexus搭建Maven私有仓库

Nexus Repository Manager is a Java application that requires a Java Runtime Environment. When you ru...
  • RickyIT
  • RickyIT
  • 2017年02月08日 15:17
  • 4441

LVS快速搭建教程

LVS配置教程 一、前言 二、安装ipvs    三、集群部署           1、使用VS/NAT调度        2、使用VS/TUN调度        3、使用VS/DR...
  • wzyzzu
  • wzyzzu
  • 2015年03月17日 13:52
  • 1028

自己动手搭建免费VoIP服务器

通过使用开源软件Asterisk,自己动手搭建免费VoIP服务器。 服务器别闲着,博主又要给大家带来新的玩法咯 1. 这里以 Debian 为例子,安装 Asterisk apt-get upda...
  • yuesichiu
  • yuesichiu
  • 2014年12月03日 10:28
  • 13682

搭建小型搜索引擎---原理及工具

简单记录一下搜索引擎的基本原理和搭建步骤。 搜索引擎基本框架 搭建搜索引擎主要分为三个步骤:Web信息的搜集;信息的索引与检索;Web服务提供接口。 1.信息...
  • qiuyang0607
  • qiuyang0607
  • 2012年06月12日 20:59
  • 4366

SparkSql搭建

Spark on yarn已搭建好,开始使用SparkSql,做如下工作
  • u011750989
  • u011750989
  • 2015年11月19日 20:19
  • 631
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UI_UITableView_搭建
举报原因:
原因补充:

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