[TwistedFate]UITableView表视图

原创 2015年11月21日 19:21:02

表示图TableView

表视图UITableView,iOS中最重要的视图,随处可⻅见。表视图通常⽤用来管理⼀一组具有相同数据结构的数据.
步骤与之前一样,先创建根视图,因为tableView的实现方法比较多,可以创建一个addTableView方法,然后在视图控制器的viewDidLoad中调用.

初始化以及代理设置

-  (void)addTableView{
//  初始化
UITableView *tableView = [[UITableView alloc] initWithFrame:[UIScreen mainScreen].bounds style:(UITableViewStylePlain)];

//  设置代理和数据源
//  数据源负责给tableView提供数据
//  需要实现两个必须实现的方法
tableView.delegate = self;
tableView.dataSource = self;

//  设置整个TableView 的表头和表尾

//  只有高度能改变
UIView *headView = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 100, 200)];

headView.backgroundColor = [UIColor cyanColor];

tableView.tableHeaderView = headView;

[headView release];

}

//  X轴与高度能改变
UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(50, 20, 100, 100)];
footerView.backgroundColor = [UIColor greenColor];
tableView.tableFooterView = footerView;
[footerView release];
// 显示视图
[self.view addSubview:tableView];

// 释放
[tableView release];

协议方法的实现

//  返回分区数
-  (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

    return 5;

}

//  返回每个分区有多少行
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    // 五行
    return 5;
}

//  设置每一个分区的每一行高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

    return 100;
}

//  返回的是索引处的每一个cell(单元格)
//  索引(分区 ---- > 行)
// 返回的是索引(分区 -- > 行)处的每一个cell(单元格)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{


    // 创建UITableViewCell
    // 标示符区分每一种cell的样式
    UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:(UITableViewCellStyleSubtitle) reuseIdentifier:@"cell"];

    // 设置标题
    cell.textLabel.text = @"哈哈";
    cell.detailTextLabel.text = @"呵呵";

    // 设置cell上的图片
    cell.imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%ld.jpg",indexPath.row + 1]];

    // 设置辅助按钮
    cell.accessoryType = UITableViewCellAccessoryCheckmark;

    return [cell autorelease];
}

//  设置TableView右边的小标题
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{

    return @[@"a",@"b",@"c"];
}


设置每个分区的表头和表尾

//  表头
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{

    UIView *headView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 20)];

    headView.backgroundColor = [UIColor redColor];

    return [headView autorelease];

}

//  表尾
- (UIView *) :(UITableView *)tableView viewForFooterInSection:(NSInteger)section{

    UIView *footview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 20)];

    footview.backgroundColor = [UIColor grayColor];

    return [footview autorelease];

}

//  设置分区表头和表尾的高度
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
    return 100;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{

    return 100;
}

//  设置分区表头的标题
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{

    NSArray *array = @[@"X", @"Y", @"Z", @"D", @"A"];
    return array[section];
}

cell的重用机制

需要一个重用的集合 作用:把划出屏幕的cell(完全消失 在屏幕上)放入这个重用集合(备用) 当屏幕下方 需要新的cell进行展示的时候 开始重用的方式 系统先去重用的集合中找 看有没有cell可以重新使用

所以cell的部分应该如下这么写

 static  NSString *identifier = @"MyCell";
    //按标识符 寻找对应的cell

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];

    if (cell == nil) {//创建新的cell 只有创建 才需要释放

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

}
版权声明:

相关文章推荐

[TwistedFate]自定义视图

LTView自定义视图的步骤 创建一个继承自UIView的类 重写新类的初始化方法 把想封装的视图添加封装到 新类里面(初始化到新类中) 为了方便外部进行赋值取值 把添加的视图写成属性(别忘了释放内存...

IOS学习八:UITableView表视图控件初步

表视图这个控件学习的时候,发现是目前我接触到最复杂的组件。 在Android中也提供了类似表视图的控件叫ListView。 原生的ListView,支持的操作其实很有限,数据的条目展示,点击或是长...

UI - UITableView表视图 ( 一 )

// singleView 取消 ViewController 作为根视图控制器 //1.将Main.storyboard 删除 //2.到工程设置里面找到 main int...

UIday0901:UITableView 1 表视图的属性和用法 1

UITableView 表视图的属性和用法 1

iOS个人整理18-UITableView表视图

一、UITableView 二、UITableViewController

IOS UITableView 表视图的绝大部分方法

UITableView表视图的绝大部分方法 //初始化一个 表视图 1、- (id)initWithFrame:(CGRect)frame style:(UITableViewStyle)styl...

UITableView 表视图

UITableView 继承自UIScrollView, 可以进行 分区(section),行(row), frame 决定tableView显示的位置,边框, row表示tableView中某一行的...

IOS学习笔记(十一)之IOS开发之表视图(UITableView)的基本介绍(一)

IOS学习笔记(十一)之IOS开发之表视图(UITableView)的基本介绍(一)(博客地址:http://blog.csdn.net/developer_jiangqq)转载请注明地址.  ...

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

内容概要:  表视图之自定义单元格  一、直接在cell.contentView上添加组件来自定义cell //返回cell - (UITableViewCell *)tableView:(...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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