cell的各种使用和赋值 总结
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的各种使用和赋值 总结的更多相关文章
- 给自定义cell赋值代码
// // ViewController.m // 11 - 投资管理 - 李洪强 // // Created by vic fan on 16/4/8. // Copyright © 201 ...
- 给自定义cell赋值
搭建自定义cell-给自定义cell赋值的思路 1 主控制器 1.1导入头文件 #import "LHQInvestmentManagementCell.h" #import &q ...
- 纯代码自定义不等高cell
数据模型.plist解析这里就不过多赘述. 错误思路之一: 通过在heightForRowAtIndexPath:方法中调用cellForRowAtIndexPath:拿到cell,再拿到cell的子 ...
- MATLAB cell & struct
CELL cell的每个单元都可以存储任何数据,比如传递函数等.当然,存储矩阵更是没有问题的了.但是用cell数据类型之前,要先初始化. a=cell(n,m) 那么就把a初始化为一个n行m列的空ce ...
- 不等高cell的搭建(一)
一.界面搭建 1.确定开发模式 如果界面是固定的,可以用xib 界面的一些内容不固定,就用纯代码 cell用什么方式去开发(我们采用纯代码和xib结合的方式) 2 ...
- iOS开发UI篇-懒加载、重写setter方法赋值
一.懒加载 1.懒加载定义 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再 ...
- MATLAB cell 数组介绍
转载:http://www.matlabsky.com/forum.php?mod=viewthread&tid=21089 由于工作需要,经常要处理大量的实验数据.基本都是由仪器导出来,随着 ...
- 08-UIKit(UITableTableViewCell、自定义Cell、xcode调试)
目录: 1. UITableTableViewCell 2. tag技术 3. 自定义Cell 4. 用nib文件构造自定义的静态表 5. TableView数据模型总结 6. Xcode代码调试 & ...
- Cell自适应高度及自定义cell混合使…
第一部分:UItableViewCellAdaptionForHeight : cell的自适应高度 第二部分:CustomTableViewCell:自定义cell的混合使用(以简单通讯录为例) = ...
随机推荐
- MySql中Blob二进制对象的处理
BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器. 可以用于存储图片等信息 Demo1:存储图片 String sql="INSERT IN ...
- VC++深入详解读书笔记-第六章菜单
1.MFC都是采用大写字母来标识资源ID号. 2.程序中会用到多种资源,在为资源确定其ID号时,为了明确区分资源类型,一般都遵循这样一个原则:在“ID”字符串后加上一个标识资源类型的字母,例如,我们给 ...
- 菜鸟做HTML5小游戏 - 翻翻乐
记录下开放过程.做小游戏开发,又要跨平台,flash又不支持iPhone,html5是最好的选择. 先看看最后效果: 好了,开始demo. 1.准备工作: 图片素材(省略...最后代码一起打包) 了解 ...
- 在PHP中PDO解决中文乱码问题
$this->pdo = new PDO($dsn, $user, $password, array(PDO::ATTR_PERSISTENT => true)); $stmt = $th ...
- 学习如何写PHP MVC框架(1) -- 路由
说到PHP开发web,自然离不开开发框架,开发框架为我们提供了灵活的开发方式,MVC层分离,业务解耦等... 第一篇先来简单点的,说说MVC框架的路由功能... 一般的单入口框架路由都是这样的结构: ...
- VC维
vc理论(Vapnik–Chervonenkis theory )是由 Vladimir Vapnik 和 Alexey Chervonenkis发明的.该理论试图从统计学的角度解释学习的过程.而VC ...
- hdu 找新朋友
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; ]; ...
- Lazy Load Plugin for jQuery延迟加载测试成功
一直需要的功能,网页图片太多时对于降低网络流量超有用. 最新的V1.9.3版本其实已不用修改就可以起作用了. 不用网上说的要自己修改代码.
- MySQL数学函数
官方文档:Numeric Functions and Operators Name Description ABS() Return the absolute value ACOS() Return ...
- 黑马程序员_Java面向对象_内部类
6.面向对象_内部类 1.内部类定义 内部类:将一个类定义在另一个类里面,对里面那个类就称为内部类.(内置类.嵌套类)内部类可以被私有修饰. 2.内部类访问规则 访问特点: 内部类可以直接访问外部类中 ...