iOS之UILabel根据内容自动调整高度

写法一:对象方法,传入:字体/最大尺寸. 即可得到宽高, 
最大尺寸主要限制宽度,如果是一行就给个{MAXFLOAT,MAXFLOAT};如果是多行就限制X值,Y值随便给

- (CGSize)sizeWithFont:(UIFont *)font maxSize:(CGSize)maxSize
{
    NSDictionary *attrs = @{NSFontAttributeName : font};
    return [self boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
}

写法二: 传入文字/字体/最大尺寸. 即可得到该文字宽高

-(CGSize)sizeWithText:(NSString *)text font:(UIFont *)font maxW:(CGFloat)maxW
{
    NSMutableDictionary *attrs=[NSMutableDictionary dictionary];
    attrs[NSFontAttributeName]=font;

    CGSize maxSize=CGSizeMake(maxW, MAXFLOAT);
   return [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
}

- (CGSize)sizeWithText:(NSString *)text font:(UIFont *)font
{
    return [self sizeWithText:text font:font maxW:MAXFLOAT];
}

自定义控件设置UILable的位置:

self.nameLabel.frame=CGRectMake(iconX, iconY, iconWH, iconWH);

或者:

    CGFloat timeX = nameX;
    CGFloat timeY = CGRectGetMaxY(self.nameLabelF) + HWStatusCellBorderW;
    CGSize timeSize = [self sizeWithText:status.created_at font:HWStatusCellTimeFont];
    self.timeLabelF = (CGRect){{timeX, timeY}, timeSize};
时间: 2024-10-24 19:16:21

iOS之UILabel根据内容自动调整高度的相关文章

Excel随着表格内容自动调整高度或宽度

Excel随着表格内容自动调整高度或宽度 在使用excel的时候,有时我们需要根据输入内容的多少调整表格的高度和宽度,如何让EXCEL自动调整呢.因本人目前实用的Office为2013版本,因此暂时先介绍此版本实现方法,其他2003版EXCEL.WPS版EXCEL的设置也大致相同,有时间再补上.2013版本实现方法如写下: 1.实现自动调整宽度.选中全部表格(Ctrl+A),如图选择开始--格式--自动调整列宽即可.另附上设置前后的效果图. 2.实现自动调整高度.分两步设置,首先选中全部表格(C

iOS 8 Tableview根据AutoLayout自动调整高度

原创Blog,转载请注明出处 blog.csdn.net/hello_hwc 前言:在iOS 8之前,如果要让Tableview根据内容自动调整大小的话,需要动态的去计算每个cell的高度.太尼玛操蛋了.iOS 8之后,可以根据AutoLayout来自动调整高度了,原理很简单. DataSource中选择让iOS自动计算 在Cell中,设定能够让iOS计算出高度的AutoLayout,注意,这里一定要是能够计算出高度的AutoLayout,这和传统的不一样. 效果 完整过程 新建一个基于sing

iOS 动态计算文本内容的高度

关于ios 下动态计算文本内容的高度,经过查阅和网上搜素,现在看到的有以下几种方法: 1. //  获取字符串的大小  ios6 - (CGSize)getStringRect_:(NSString*)aString { CGSize size; UIFont *nameFont=[UIFont fontWithName:@"Helvetica" size:13]; size=[aString sizeWithFont:nameFont constrainedToSize:CGSize

设置DIV根据内容自动调整高度的三个方法

Div即父容器在Firefox.Chrome.Safari中不会根据内容自动调节高度,我们看下面的HTML代码: <divid="main"><divid="content"></div></div> 当Content内容很多时,即使main设置了高度100%或auto.在除IE外的其他浏览器中还是不能完好的自动伸展.也就是说,内容的高度容器main的高度还是没有自动撑开. 我们有三种方法可以解决这个问题. 一,增加一

IOS UILabel 根据内容自适应高度

iOS Label 自适应高度  适配iOS7以后的版本 更多 self.contentLabelView = [[UILabel alloc] init]; self.contentLabelView.font = SYS_FONT(15); self.contentLabelView.lineBreakMode =NSLineBreakByTruncatingTail ; self.contentLabelView.textColor =  [UIColor colorWithHexStri

textbox根据内容自动调整高度

首先将Textbox改为多行模式,设置MutliLine属性为True,对于textbox中文本有回车的,直接通过textbox.lines.count()可以获取到行数. 但是单行无回车的文本如何知道自动换行状态下,高度呢? 首先使用Size size = TextRenderer.MeasureText(textBox2.Text, textBox1.Font);进行测量,然后进行计算,以下代码较粗,仅抛砖引玉. /// <summary> /// 根据文本内容设置textbox高度 //

iOS7上 使用autolayout让Cell自动调整高度

如果是iOS8, 那么在storyboard中对cell添加好约束之后只需要再添加两句代码就能让cell自动调整高度 1 self.tableView.estimatedRowHeight = 非0; 2 self.tableView.rowHeight = UITableViewAutomaticDimension; 但是现在大多数应用都还是需要支持iOS7的, 所以在以上基础上, 再在tableView的代理方法中添加以下即可解决, 在这之前别忘了添加一个属性 @property (stro

iOS 设置UILabel的行间距并自适应高度

NSString *contentStr = @"总以为,在最初的地方,有一个最原来的我,就也会有一个最原来的你"; UILabel *tempLabel = [[UILabel alloc] init]; //设置背景颜色 tempLabel.backgroundColor = [UIColor redColor]; //设置内容 tempLabel.text = contentStr; //设置字体颜色 tempLabel.textColor = [UIColor whiteCol

iOS UIWebView 获取内容实际高度,关闭滚动效果

iOS UIWebView 获取内容实际高度,关闭滚动效果 近期做东西,将 UIWebView 嵌套在 UIScrollView 里,由 UISCrollView 控制滚动,需要使 UIWebView 的高度同内容高度一致,网上搜索的到代码: htmlHeight = [webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"]; 这段代码是无效的,body 获取到的 offsetHeigh