自定义cell 自适应高度

#pragma mark - 动态计算cell高度

//计算 返回 文本高度

+ (CGFloat)calsLabelHeightWithContact:(Contacts *)contact

{

//size:   文字最大范围

//options:计算高度 参数

//  NSStringDrawingUsesLineFragmentOrigin:指定 原点 绘制字符串片段起源和基线。

//attributes:文字某个属性 通常是大小

//ios7 获取文本高 方法

CGRect rect = [contact.introduce boundingRectWithSize:CGSizeMake(280, 2000)

options:NSStringDrawingUsesLineFragmentOrigin

attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:17.0f] }

context:nil];

return rect.size.height;

}

//重写contact 的setter方法

- (void)setContact:(Contacts *)contact

{

if (_contact != contact) {

[_contact release];

_contact = [contact retain];

//将获取到的值赋值到控件上,赋值

//1,头像

_headImageView.image = [UIImage imageNamed:contact.headImageName];

//2,名字

_nameLabel.text = contact.name;

//3,电话

_phoneNumberLabel.text = contact.phoneNumber;

//4,性别

_genderLabel.text = contact.gender;

//5,年龄

if (contact.age) {

_ageLabel.text = contact.age;

}else{

_ageLabel.hidden = YES;

}

//6,简介

_introduceLabel.text = contact.introduce;

//计算高度

CGFloat height = [BoyTableViewCell calsLabelHeightWithContact:contact];

//修改高度

CGRect frame = _introduceLabel.frame;

frame.size.height = height;

_introduceLabel.frame = frame;

}

}

#pragma mark - 提供类方法,返回模型内容高度

//使用模型参数,

+ (CGFloat)cellHeightWithContact:(Contacts *)contact

{

CGFloat h = [self calsLabelHeightWithContact:contact];

return 140 + h;

}

//行高

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

//1,通过组索引 找出对应的key

NSString *key = _allKeysMutaArray[indexPath.section];

//2,通过可以 查出对应分组

NSMutableArray *array = _allDataMutaDict[key];

//3,通过row 查出 数组对应项

Contacts *c = array[indexPath.row];

//计算出模型的高度

CGFloat h =[BoyTableViewCell cellHeightWithContact:c];

return h;

}

时间: 2024-10-10 14:49:15

自定义cell 自适应高度的相关文章

自定义 cell 自适应高度

#import "CommodityCell.h" #import "UIImageView+WebCache.h" @implementation CommodityCell - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { self = [super initWithStyle:style reuseIdentifier:re

第?一讲:UITableView 高级 自定义cell , cell自适应高度

一.自定义cell(包括cell的自定义,以及直接赋值的方法) 自定义cell就是创建一个UITableViewCell的子类. 把cell上的控件创建都封装在子类中,简化UIViewController中的代码 示例代码分析:(这个例子包括cell的自定义,以及直接赋值的方法) 1.需要建立tabelViewCell类, 在其中进行cell上控件的添加 2.在tabelViewCell.m中进行初始化,和layoutSubviews的frame布局的操作 tabelViewCell.h定义属性

TableView cell自适应高度-----xib

1.通过xib创建一个cell,将label进行上左下右,进行适配, self.automaticallyAdjustsScrollViewInsets = NO; self.edgesForExtendedLayout = UIRectEdgeNone;//将原点移动到navigationBar下面去了 tableView.estimatedRowHeight = 37.0;//估计cell的高度 tableView.rowHeight = UITableViewAutomaticDimens

IOS 控件 - UITableView 中的cell 自适应高度

当 UITableView 中有一个 label 的内容比较长的时候,就需要 cell 自适应高度来多行展示label: 首先设置 label 的 line 为0: 代码如下: // 为每一个 cell 预设置一个高度,可以提高效率 - (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath { return 44; } // 这里每一个 cell

UITableView的自定义以及自适应高度

1.自定义cell的第一步,将所有cell要显示的子视图控件都声明成属性(不能与cell里面的属性重名) 2.重写cell的初始化方法  frame给定为0 将控件添加到cell上面进行显示.一个要注意使用self.contarntView添加 3.重写layoutSubviews方法,给定内部控件的具体位置 4.导入模型,将模型与cell绑定,声明模型的属性 5.重写模型属性的setter方法.内部使用模型为内部的控件赋值 自适应高度的方法 求一段文本的显示高度 + (CGFloat)heig

UITabelView的Cell自适应高度

http://www.jianshu.com/p/83e72f90d7c1 思路:因为cell高度不固定,需要动态赋值,所以用了最常见的cell内有一个model,model内有cellHeight的方式,在cell的model的set方法中给model的cellHeght赋值. cell.m  (重写model属性的set方法) -(void)setBaikeModel:(Model *)baikeModel{ self.titleLabel.text = baikeModel.title;

IOS XIB Cell自适应高度实现

1.代码实现Cell高度自适应的方法 通过代码来实现,需要计算每个控件的高度,之后获取一个cell的 总高度,比较常见的是通过lable的文本计算需要的高度. CGSize labelsize = [@"asdassdas" sizeWithFont:font constrainedToSize:CGSizeMake(320,2000) lineBreakMode:NSLineBreakModeWordWrap]; 这样就可以计算展示需要的高度,cell里面展示的时候可以在代理的方法内

自定义cell的高度

// //  RootTableViewController.m //  Share // //  Created by lanouhn on 15/1/20. //  Copyright (c) 2015年 niutiantian. All rights reserved. // #import "RootTableViewController.h" #import "CustomTableViewCell.h" #import "DetailViewC

iOS 自定义cell的高度

在iOS开发过程中,最重要的几个UIView分别为UITableView.UIScrollView.UICollection.今天由小白哥带大家认识一下UItableVIew 首先,建立一个Model类: #import <Foundation/Foundation.h> @interface News : NSObject @property (nonatomic,retain) NSString *title; @property (nonatomic,retain) NSString *