cell可以分为:自定义cell,系统的cell ,cell的自适应,.xib的cell

//第一种cell:系统cell

在 UIViewController下创建UITableView

//1.0 UITableView的父类是UIScollView,所以他可以滚动,但是支持数字方向的滚动
     2.UITableView是以列的形式展示数据但是只要一列
     3.UITableView可以有0个活多个分区(section)构成,每一个分区可以与很多的行(row)且通过UITableView中分区下标区分是哪一个分区,row是根据所在分区中的下标来区分section和row的下标都是从0开始
     4.UITableView可以有两种样式,plain和group,创建的时候必须指定一个样式,且指定样式之后就不能修改
     5.UITableView的很多方法的返回值和参数都有NSIndexPath类对象,NSIndexPath对象存储的是选中单元格(cell)的所在分区下标以及分区中行的下标

//2.1设置单元格的高度
    tableView.rowHeight = 142;
    //2.2设置分割线的颜色
    tableView.separatorColor  = [UIColor greenColor];
    //2.3设置分割样式
    tableView.separatorStyle =UITableViewCellSeparatorStyleSingleLine;

//2.4设置表头视图 一般在表头视图上放置轮播图,

//2.5设置表尾视图(小技巧:可以使用表尾视图收起虚假的cell样式)

//2.6VIPtableview的数据源代理
    tableView.dataSource = self;
//    tableView.delegate = self;

//必须实现的代理(1--2)

//1 .返回UITableView中section(分区个数)

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;

//2 .返回每个分区中cell的个数

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;

//返回分区索引栏
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView;

//返回每个分区的区尾上的标题
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section;

//返回每个分区的页眉,区头上的标题
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section;

//创建cell对象并将cell对象返回,而且还能在这个方法中设置cell要显示的数据
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

//系统cell

UITableViewCell *cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:nil]autorelease];

// indexPath.section 存储的分区下标
//indexPath.row 存储行所在分区的下标

//给cell上的textlabel赋值
    cell.textLabel.text = [NSString stringWithFormat:@"%ld- %ld",indexPath.row,indexPath.section];
    //给cell上imageView的赋值
    cell.imageView.image = [UIImage imageNamed:@"blu"];
    //给cell上detailTextLable
    cell.detailTextLabel.text = @"详情信息";
    //设置cell上的辅助视图样式
    //cell.accessoryType = UITableViewCellAccessoryCheckmark;
    //放置UIControl控件
    //cell.accessoryView = [[[UISwitch alloc]init]autorelease];

cell的重用机制

//用static修饰的变量存放在静态区,方法执行完也不会被销毁,而不用static变量存放在栈区方法执行完就会被销毁,每次都重新创建,用static只需要创建一次即可
    static  NSString *iddentfier = @"NB";
    
    //2.当需要一个cell时,tableView对象重用池中根据重用标识去取cell
   UITableViewCell *cell =  [tableView dequeueReusableCellWithIdentifier:iddentfier];
    
  //3.根据取出的cell是否为空判断是的创建,还是直接使用
    if (cell == nil) {
        NSLog(@"=====");
        cell = [[[UITableViewCell alloc]initWithStyle:(UITableViewCellStyleValue1) reuseIdentifier:iddentfier]autorelease];
    }
cell展示数据

return cell;

}

在UITableViewController下创建cell --一般使用KVC

思想:

1.先创建UITableViewController设置为windows根视图

2.创建UITablecell ,使用懒加载布局,必须重写cell的自定义方法

3.创建Model类  ,是存储数据模型的类,在设计的MOder的时候,给这MOder类添加相应的属性,而且MOder的属性名要存储的数据所对应的key值名保持一致(MOder类一般存储的都是字典类型数据).moder类中属性个数,要和需要存储的个数一致
//好处:moder在实际开发中使用频率非常高,因为moder中的访问时可以直接通过点语法访问,而且他具有的属性会由提示
//可以使用KVC形式快速为moder对象的属性赋值

4.赋值可以用属性赋值(重写set方法)和自定义一个接口

cell的使用

1.注册GirlCell
    [self.tableView registerClass:[GirlCell class] forCellReuseIdentifier:kGirlcell];

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

   GirlCell *cell = [tableView dequeueReusableCellWithIdentifier:kGirlcell forIndexPath:indexPath];

}

cell的自适应

在UITableViewController下实现

思路:

1.在UITablecell.h里用类自定义一个方法

2.调用一个接口方便外界调用

使用

//1.文本绘制的大小,要和summaryLabel的宽一致

//2.NSStringDrawingUsesLineFragmentOrigin设置文本绘制的标准
//3.设置文字的属性(注意文字的大小要和summaryLabel上设置的文字大小保持一致)

//4.文本上下文nil

eg:

//调用一个借口方便外界赋值
- (void)assignNewsCellSubviewByNews:(News *)news;
//返回cell的高度
+ (CGFloat)cellHeight:(News *)news;

实现:

+ (CGFloat)sumaryheight:(News *)news{
    CGSize contextSize = CGSizeMake(300, 0);
    NSDictionary *dic = @{NSFontAttributeName :[UIFont boldSystemFontOfSize:15.0]};
#pragma mark -- 自定以cell
    CGRect rect = [news.summary boundingRectWithSize:contextSize options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil];
    return rect.size.height;
}

cell的各种使用和赋值 总结的更多相关文章

  1. 给自定义cell赋值代码

    // //  ViewController.m //  11 - 投资管理 - 李洪强 // //  Created by vic fan on 16/4/8. //  Copyright © 201 ...

  2. 给自定义cell赋值

    搭建自定义cell-给自定义cell赋值的思路 1 主控制器 1.1导入头文件 #import "LHQInvestmentManagementCell.h" #import &q ...

  3. 纯代码自定义不等高cell

    数据模型.plist解析这里就不过多赘述. 错误思路之一: 通过在heightForRowAtIndexPath:方法中调用cellForRowAtIndexPath:拿到cell,再拿到cell的子 ...

  4. MATLAB cell & struct

    CELL cell的每个单元都可以存储任何数据,比如传递函数等.当然,存储矩阵更是没有问题的了.但是用cell数据类型之前,要先初始化. a=cell(n,m) 那么就把a初始化为一个n行m列的空ce ...

  5. 不等高cell的搭建(一)

    一.界面搭建   1.确定开发模式      如果界面是固定的,可以用xib      界面的一些内容不固定,就用纯代码      cell用什么方式去开发(我们采用纯代码和xib结合的方式)   2 ...

  6. iOS开发UI篇-懒加载、重写setter方法赋值

    一.懒加载 1.懒加载定义 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再 ...

  7. MATLAB cell 数组介绍

    转载:http://www.matlabsky.com/forum.php?mod=viewthread&tid=21089 由于工作需要,经常要处理大量的实验数据.基本都是由仪器导出来,随着 ...

  8. 08-UIKit(UITableTableViewCell、自定义Cell、xcode调试)

    目录: 1. UITableTableViewCell 2. tag技术 3. 自定义Cell 4. 用nib文件构造自定义的静态表 5. TableView数据模型总结 6. Xcode代码调试 & ...

  9. Cell自适应高度及自定义cell混合使…

    第一部分:UItableViewCellAdaptionForHeight : cell的自适应高度 第二部分:CustomTableViewCell:自定义cell的混合使用(以简单通讯录为例) = ...

随机推荐

  1. Ubuntu中安装编译并测试HTK语音识别库

    1.在网上看到首先必须确保电脑上安装了g++和libx11 g++ --version //检测g++版本 sudo apt-get install libx11-dev:i386 2.然后可从HTK ...

  2. poj2187 Beauty Contest(旋转卡壳)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud Beauty Contest Time Limit: 3000MS   Memor ...

  3. 使用pcs api往免费的百度网盘上传下载文件

    百度个人云盘空间大,完全免费,而且提供了pcs api供调用操作文件,在平时的项目里往里面保存一些文件是很实用的. 环境准备: 开通读写网盘的权限及获取access_token:http://blog ...

  4. C#实现窗体间的通信

    以下将窗体间的几种通信实现方式做一下罗列:首先新建一个窗体Form1,在其中放置一个Textbox.Button控件.再新建一个窗体Form2,其上放置一个Button控件.具体代码示例如下: //F ...

  5. python 解决递归调用栈溢出

    递归函数 2578次阅读 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact ...

  6. python比较两个列表

    两个列表,随机产生4个不相等的数,计算一下,相同位置上的元素相等的个数,用k1表示. b列表中的元素在a列表中,但位置不相同,有多少个,用k2表示. 例如: a=[0, 4, 7, 3]b=[7, 1 ...

  7. Java如何从HttpServletRequest中读取HTTP请求的body

    首先贴出原文地址,尊重原作者 http://blog.csdn.net/zxygww/article/details/47045055 注意:下面方法已验证通过. HTTP请求中的是字符串数据: // ...

  8. matlab的绘图保存

      matlab的绘图和可视化能力是不用多说的,可以说在业内是家喻户晓的.Matlab提供了丰富的绘图函数,比如ez**系类的简易绘图函数,surf.mesh系类的数值绘图函数等几十个.另外其他专业工 ...

  9. C语言里面关于数组的一个容易忽视的小细节

    ginobili@VM_44_28_sles10sp1:~/code> cat test3.cpp #include <stdio.h> int main(){ char a[5] ...

  10. [转]RegOpenKeyEx函数失败的问题

    在使用这个函数RegOpenKeyEx的时候,老是执行不成功,函数本身返回2,GetLastError返回0.在CSDN上查阅资料说是返回2的原因是注册表中对应路径不存在,可是我电脑中注册表那个键值明 ...