2 wojiaoweide wojiaoweide 于 2016.01.16 09:38 提问

想问下,iOS tableviewcell 高度如何跟文字内容高度一样呢?

想问下,iOS tableviewcell 高度如何跟文字内容高度一样呢? 它自己根据里面的文字或者图片自定义高度?用masonry可以不

5个回答

u014762933
u014762933   2016.01.18 17:31

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell=[self tableView:tableView cellForRowAtIndexPath:indexPath];
return cell.frame.size.height;
}

devmiao
devmiao   Ds   Rxr 2016.01.17 09:46
u014116643
u014116643   2016.01.19 10:55

计算文本高度,cell的高度返回它即可。

u014116643
u014116643 楼上那个就是方法啊。
2 年多之前 回复
wojiaoweide
wojiaoweide 怎样计算呢,这个是重点
2 年多之前 回复
wojiaoweide
wojiaoweide 怎样计算呢,这个是重点
2 年多之前 回复
leilba
leilba   Rxr 2016.01.21 14:58

我给你一个计算文字高度的方法

 /**
 *  计算文字显示的大小,支持单行和多行
 *
 *
 *  @param String    文字内容
 *  @param font      文字的字体
 *  @param maxWidth  文字的最大宽度
 *  @param maxHeight 文字的最大高度
 *
 *  @return 文字的显示区域,可以单单使用rect的size属性
 */
- (CGRect)getFontSizeWithString:(NSString *)String withFont:(UIFont *)font withMaxWidth:(CGFloat )maxWidth withMaxHeight:(CGFloat )maxHeight
{    
    CGRect rect = [String boundingRectWithSize:CGSizeMake(maxWidth, maxHeight) options:NSStringDrawingUsesLineFragmentOrigin attributes:[NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName, nil] context:nil];
    return rect;
}

按照你的需求的话,使用这个方法,传入文字内容、文字字体、文字显示的最大宽度、以及 MAXFLOAT
返回的结果就是你所需要的文字的范围矩形,然后获取其中的cgsize,从而得到文字的计算高度。
获取高度以后,就可以使用heightForRowAtIndexPath方法进行高度的设置,
比如:

 -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
 return [self getFontSizeWithString:@"hello" withFont:[UIFont systemFontOfSize:12] withMaxWidth:SCREEN_WIDTH  withMaxHeight:MAXFLOAT].size.height;
}

我是这样做的,你可以试一下

Margaret_MO
Margaret_MO   2016.03.03 15:10

/**

  • 自适应文字高度 *
  • @param text 要适应label的文本内容
  • @param font 当前文本的字体
  • @param width label固定的宽度 *
  • @return 自适应之后label的高度
    */
    +(CGFloat)heightWithText:(NSString *)text font:(UIFont *)font width:(CGFloat)width {
    //第一步:设置文本显示的范围
    //如果计算label的自适应高度,那么宽度需要固定,宽度需要尽量设置大值
    CGSize size = CGSizeMake(width, MAXFLOAT);

    //第二步:设置要显示的文本样式
    NSDictionary *style = [NSDictionary dictionaryWithObjectsAndKeys:font, NSFontAttributeName, nil];

    //第三步:根据文本内容和文本样式计算label的frame
    /**

    • 参数说明: 1.文本的显示范围 2.文本显示规则 3.字体文本样式(通常只包括字体大小) 4.通常nil */ CGRect result = [text boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:style context:nil];

    //返回自适应之后的高度
    return result.size.height;
    }

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
tableViewCell根据内容自适应高度的方法
tableViewCell根据内容自适应高度的方法:无论使用xib还是代码写控件,核心思想都是根据cell中content内容的高度来计算cell的高度。 1.在获取到cell数据源的时候计算内容高度。可以设置一个size属性,用来记录。 2.如果是xib,去掉autolayout 3.在cellForRowAtIndexPath方法中填充cell数据的时候,根据内容高度,设置控件高度 4.
cell根据文本长度来自动调整cell高度
第一种方法: @interfaceHMTAssistCell :UITableViewCell@property(nonatomic)UILabel* label;//定义一个文本@end@implementationHMTAssistCell (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString*)reus
iOS之如何自适应TableViewCell的高度
1. 问题描述:     在项目中会遇到由于每个cell的图片和文本大小不一致,如果cell的height高度设置不合理的话,对用户体验不是很好。但是如果对cell的height高度设定死之后,当遇到大量文本的话也会出现问题。所以这就需要在每次对cell进行绘制的时候对cell的height进行计算,然后再绘制cell。但是一般情况下,这种对cell的height计算会比较负责。但是App
iOS cell高度自适应 - 教你写出优雅的table view
作为一个iOS开发者,自然少不了了table view打交道,table view中最令人头疼的是各种cell的高度计算了,虽然技术上并不难,但是对于自定义cell来说一旦控件比较多,计算起来就会很麻烦,会出现很多和height相关的代码,万一稍有偏差,就要小心老板和测试大虾们鄙视的小眼神了。 今晚呢,现在已经是凌晨了~ 下面就为大家介绍一种方法,让你的cell彻底丢弃HEIGHT这玩意儿~在正
动态确定tableViewCell的高度
如果我们的cell的大小是固定的当然是可以在下面的方法里面写死 -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 100; } 但是我们的cell往往会根据里面的内容做调整.由于获取height的方法实在生成cell之前,一开始的
IOS TableView的Cell高度自适应,UILabel自动换行适应 table里控件位置自适应
部分转载自:http://blog.csdn.net/swingpyzf/article/details/18093959
cell高度自适应实现的最简单方式
曾经为了实现cell的高度自适应,不知道吃了多少苦。那个时候,是在我的数据模型model中添加一个height属性,实现它的get方法,在get方法中计算需要多行显示文字的高度,然后再加上其他乱七八糟的高度并返回,然后在tableview的 - (CGFloat)tableView:(UITableView )tableView heightForRowAtIndexPath:(NSIndexP
UItableView Cell 高度自适应--随着多个label内容变化自适应
看了前辈的cell 自有适应。更具需求。完成上下 多个label 自适应 文章链接:http://blog.csdn.net/swingpyzf/article/details/18093959
IOS TableView的Cell高度自适应,UILabel自动换行适应
IOS TableView的Cell高度自适应,UILabel自动换行适应 项目的源码下载地址:http://download.csdn.net/detail/swingpyzf/6835365 需求: 1、表格里的UILable要求自动换行 2、创建的tableViewCell的高度会自动适应内容的高度 一、用xcode构建项目,创建一个有table
四种方法实现UITableView的cell高度自动计算
UITableview是iOS开发中使用最频繁的一个控件,在实际开发中,我们经常需要定制cell,让cell显示图片、文字等。由于cell包含的图片和文字是根据服务器返回的数据进行填充的,这就导致cell包含的内容的高度是不定的。 四种方法计算cell的高度: 1、iOS8的自动计算机制,需要autolayout(适用iOS8之后系统) 2、iOS6之后系统API结合autola