[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]UITableView表视图编辑,移动

UITableView编辑数据准备// 初始化数据 - (void)initializeData{ NSArray *array = @[@"0", @"1", @"2", @"3", @"添...
  • ShadowOfMaster
  • ShadowOfMaster
  • 2015年11月23日 19:10
  • 275

iOS个人整理18-UITableView表视图

一、UITableView 二、UITableViewController
  • u010330109
  • u010330109
  • 2016年02月26日 11:39
  • 926

swift UITableView 表视图

// //  AppDelegate.swift //  swiftTableView // //  Created by baojia on 14-6-30. //  ...
  • zhang_biao_1991
  • zhang_biao_1991
  • 2014年06月30日 18:00
  • 4064

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

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

UITableView 表视图

UITableView的属性 1. 初始化:nitWithFrame:CGRectMake(x, y, width, height) style:UITableViewStylePlain];   ...
  • AsureSara
  • AsureSara
  • 2014年07月02日 22:56
  • 376

UITableView:表视图

//UITableView:表视图 /*    UITableView 使用重用机制(滚筒原理) 通过重用tableView的cell达到节省的目的 使用一个字符串类型的ID判断是那种cell ...
  • PersonSky
  • PersonSky
  • 2015年09月16日 22:42
  • 224

UITableView(表视图)

1.UITableView UITableView继承于UIScrollView,表视图的每一条数据都显示在UITableViewCell对象中,表视图可以分区显示数据,每个分区成为一个sectio...
  • a546822414
  • a546822414
  • 2015年09月04日 21:33
  • 150

UITableView表视图

1. UITableView继承⾃UIScrollView,所以可以滚动   2. 表视图的每⼀条数据都是显⽰在UITableViewCell对象中   3. 表视图可以分区显⽰数据,每个分区...
  • vidonia0803
  • vidonia0803
  • 2015年08月06日 22:46
  • 151

UITableView(表视图)

UITableView @interface UITableView : UIScrollView //表视图风格 typedef NS_ENUM(NSInteger, UITableVie...
  • Apel0811
  • Apel0811
  • 2016年05月05日 10:44
  • 125

UITableView 表视图

1.*********************************创建表视图*************************************** 1.1实例化对象  UITa...
  • loseway711
  • loseway711
  • 2014年12月21日 15:26
  • 261
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[TwistedFate]UITableView表视图
举报原因:
原因补充:

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