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上.做个笔记详细了解下. 参 ...
随机推荐
- 函数nvl 和decode
decode(nvl(kkc.category, 'one'),'one','普通','two','精品','three','行业','four','白金')
- Main.C中 IO口,中断及串口初始化
void Port_Init(void) { //CAUTION:Follow the configuration order for setting the ports. // 1) setting ...
- 如何用css做一个细虚线边框表格
<style type="text/css"> <!-- .dashed_tbl { border-top: 1px dashed #333333; border ...
- python核心编程学习记录之条件和循环
- CSS 笔记五(Combinators/Pseudo-classes/Pseudo-elements)
CSS Combinators Four different combinators in CSS3 descendant selector (space) child selector (>) ...
- 基于webrtc的视频通话时webrtc的接口调用流程
场景: 1.A call B 2.B answer 3.A connected with B 共同的步骤: A 和 B 都需要初始化webrtc模块,创建peerconnectionfactory 步 ...
- 【转】eclipse安装SVN插件的两种方法
转载地址:http://welcome66.iteye.com/blog/1845176 eclipse里安装SVN插件,一般来说,有两种方式: 直接下载SVN插件,将其解压到eclipse的对应目录 ...
- transient
“transient”——“瞬态”,先不说这个翻译是否恰当,这个变量关键字一直不曾使用,简单的说就是被瞬态定义的变量不可序列号.或者这么给他换个名字——“不可序列化状态”.打个比方,如果一个用户有一些 ...
- mac攻略(三) -- apache站点配置
Mac OS X 中默认有两个目录可以直接运行你的 Web 程序, 一个是系统级的 Web 根目录:/Library/WebServer/Documents/ 此根目录我们平常使用地址http://l ...
- CSS之盒子模型及常见布局
盒子模型的综合应用 CSS提高1 Div ul li 的综合应用很多的网页布局现在都用到这种模式 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTM ...