UITableViewCell自定义


.png)
.png)
UITableViewCellStyleDefault
UITableViewCellStyleValue1
UITableViewCellStyleValue2
objectAtIndex:indexPath.row];
//根据model属性划分
if (model.type == 0) {
FirstTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:firstIdentify];
return cell;
}
if (model.type == 1) {
SecondTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:secondIdentify];
return cell;
if (indexPath.row == 0) {
FirstTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:firstIdentify];
return cell;
}
// 第⼆⾏显⽰第⼆种Cell
if (indexPath.row == 1) {
SecondTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:secondIdentify];
return cell;
- 文本自适应高度 根据⽂本内容设定Label⾼度
// 获得字体样式属性
NSDictionary *att = @{NSFontAttributeName:[UIFont systemFontOfSize:17.0]};
// 根据字体样式属性获得⾼度
CGRect rect = [str boundingRectWithSize:CGSizeMake(200, 10000) options:NSStringDrawingUsesLineFragmentOrigin attributes:att context:nil];
- 图片自适应高度 根据图⽚宽度进⾏等⽐例缩放
// 获得图⽚真实⾼度和宽度
CGFloat height = aImage.size.height;
CGFloat width = aImage.size.width;
// 缩放后宽度固定为200
CGFloat scale = width / 200;
@property (nonatomic, retain) UILabel *nameLabel;//姓名
@property (nonatomic, retain) UILabel *genderLabel;//性别
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
_headerImageView = [[UIImageView alloc] initWithFrame:CGRectZero];
_headerImageView.backgroundColor = [UIColor orangeColor];
_nameLabel = [[UILabel alloc] initWithFrame:CGRectZero];
_nameLabel.backgroundColor = [UIColor yellowColor];
_genderLabel = [[UILabel alloc] initWithFrame:CGRectZero];
_genderLabel.backgroundColor = [UIColor cyanColor];
_ageLabel = [[UILabel alloc] initWithFrame:CGRectZero];
_ageLabel.backgroundColor = [UIColor purpleColor];
//自定义cell内部添加子视图, 不能使用self,应该是使用sele.contentView
[self.contentView addSubview:_nameLabel];
[self.contentView addSubview:_genderLabel];
[self.contentView addSubview:_ageLabel];
[self.contentView addSubview:_headerImageView];
}
return self;
[super layoutSubviews];
_headerImageView.frame = CGRectMake(5, 5, 50, 80);
_nameLabel.frame = CGRectMake(65, 5, 100, 20);
_genderLabel.frame = CGRectMake(65, 35, 100, 20);
_ageLabel.frame = CGRectMake(65, 65, 100, 20);
if (_modelStu != modelStu) {
[_modelStu release];
_modelStu = [modelStu retain];
_genderLabel.text = _modelStu.gender;
_ageLabel.text = _modelStu.age;
}
+ (CGFloat)heightForString:(NSString *)string {
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:17], NSFontAttributeName, nil];
CGRect rect = [string boundingRectWithSize:CGSizeMake(3 *kImageWidth, 1000) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil];
return rect.size.height;
}
//返回cell的高度
+ (CGFloat)cellHeightForStudent:(Student *)student {
CGFloat totalHeight = 65 + [BoyTableViewCell heightForString:student.introduce];
return totalHeight > 120 ? totalHeight : 120;
[_nameLabel release];
[_genderLabel release];
[_ageLabel release];
[_headerImageView release];
[_modelStu release];
[super dealloc];
//先获取模型
Student *student = _dataArray[indexPath.row];
if ([student.sex isEqualToString:@"男"]) {
return [BoyTableViewCell cellHeightForStudent:student];
} else if ([student.sex isEqualToString:@"女"]) {
return [GirlTableViewCell cellHeightForStudent:student];
}
return 0;
}
UITableViewCell自定义的更多相关文章
- ##DAY12 UITableViewCell自定义
##DAY12 UITableViewCell自定义 #pragma mark -------自定义视图步骤--------- 自定义视图步骤: 1)在自定义cell类中,将所有cell要显示的子视图 ...
- iOS学习31之UITableVIewCell自定义
1. 自定义Cell 1> 为什么要自定义Cell UITableView 中系统的Cell共提供了四种默认样式, 分别是: UITableViewCellStyleDefault UITab ...
- iOS:UITableViewCell自定义单元格
UITableViewCell:自定义的单元格,可以在xib中创建单元格,也可以在storyBorad中创建单元格.有四种创建方式 <1>在storyBorad中创建的单元格,它是静态的单 ...
- UITableViewCell 自定义绘制 性能高
// // FoodListTableViewCellB.m // BabyFood // // Created by zhuang chaoxiao on 16/3/7. // Copyri ...
- 纯代码自定义不等高cell
数据模型.plist解析这里就不过多赘述. 错误思路之一: 通过在heightForRowAtIndexPath:方法中调用cellForRowAtIndexPath:拿到cell,再拿到cell的子 ...
- UITableViewCell Property “icon” cannot be found in forward class object “DJWeiBo”
UITableViewCell 自定义表格 实体属性不显示错误 Property “icon” cannot be found in forward class object “DJWeiBo”引入实 ...
- UITabelViewCell自定义(zhuan)
很多时候,我们需要自定义UITableView来满足我们的特殊要求.这时候,关于UITableView和cell的自定义和技巧太多了,就需要不断的总结和归纳. 1.添加自定义的Cell. 这个 ...
- IOS之UI -- UITableView -- 2 -- 等高的Cell
内容大纲: 1.纯代码 添加子控件 2.Autolayout纯代码 -- Masonry框架的使用 3.自定义等高的cell -- storyboard的使用(更加简单) 4.静态cell 等高的Ce ...
- 关于直接创建视图UITableViewController显示(初学)
今天渣渣想直接创建一个UITableView视图作为根视图来用结果发现有警告,才明白TableView和view是不能直接作为根视图的,需要放在ViewController上.做个笔记详细了解下. 参 ...
随机推荐
- 使用uiautomator做UI测试
转载~~~~~~~~~~~~~~~~~~~~~~~~ 若有侵权,请及时联系本博主,博主将第一时间撤销 在Android 4.1发布的时候包含了一种新的测试工具–uiautomator,uiautoma ...
- 使用Jquery解析Json基础知识
前言 在WEB数据传输过程中,json是以文本,即字符串的轻量级形式传递的,而客户端一般用JS操作的是接收到的JSON对象,所以,JSON对象和JSON字符串之间的相互转换.JSON数据的解析是关键. ...
- 整理课堂笔记 pl/sql orcale异常
1>>>>>异常错误处理 1 >预定义的异常处理 预定义说明的部分 ORACLE 异常错误对这种异常情况的处理,只需在PL/SQL块的异常处理部分,直接引用相应 ...
- ubuntu常用命令记录集
1.查找当前目录下包含某字符串的文件 #find ./ -type f |xargs grep "string" 2.查找文件 #find ./ -name filename 3. ...
- Sprint第二个冲刺(第八天)
一.Sprint介绍 任务进度: 二.Sprint周期 看板: 燃尽图:
- css美化checkbox radio样式
/*check,radio*/ input.check_txt[type='checkbox']{ display: none; } input.check_txt[type='checkbox'] ...
- 页面缩放对css的影响
昨天发现一个上线的项目css样式明显不对,但是查看别人的电脑上的页面样式都是没问题的,于是找了半天原因,原来是我的浏览器对这个页面缩放了,导致样式问题. 发现了页面缩放会作用在同一个域名下的所有页面, ...
- 浙江理工2015.12校赛-A
孙壕请一盘青岛大虾呗 Time Limit: 5 Sec Memory Limit: 128 MB Submit: 577 Solved: 244 Description 话说那一年zstu与gdut ...
- [Oracle] SQL*Loader 详细使用教程(3)- 控制文件
控制文件是SQL*Loader里最重要的文件,它是一个文本文件,用来定义数据文件的位置.数据的格式.以及配置数据加载过程的行为,在sqlldr中以control参数指定控制文件. 在控制文件里配置 ...
- php总结 --- 10. xml操作
xml 和array互换 /** * 数组编码为XML * @param array $data 数据 * @return mixed 编码后数据 */ function xmlencode($dat ...