UILabel 根据文本内容设置frame

  CGRect senderFrame = cell.senderLabel.frame;
    CGRect creatAtFrame = cell.creatAtLabel.frame;
    CGSize senderSize = [cell.senderLabel.text sizeWithAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"Heiti SC" size:15.0]}];
    senderFrame.size.width = ceil(senderSize.width);
    if (senderFrame.size.width>0) {
        senderFrame.size.width=ceil(senderSize.width)+10;
    }
    
    if (senderFrame.size.width>200) {
        senderFrame.size.width = 200;
    }
    
    cell.senderLabel.frame = senderFrame;
    creatAtFrame.origin.x = CGRectGetMaxX(cell.senderLabel.frame)+10;
    cell.creatAtLabel.frame = creatAtFrame;
    
    NSDictionary *info = messageModel.info;
    // 设置属性来设置行高
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    paragraphStyle.lineSpacing = 3;
    NSDictionary *attributes = @{NSFontAttributeName: [UIFont systemFontOfSize:15.0],NSParagraphStyleAttributeName:paragraphStyle};
    CGFloat width = CGRectGetWidth(self.view.frame)-CGRectGetMinX(cell.senderLabel.frame) - 16;
    CGRect frame = cell.descLabel.frame;
    frame.size.width = width;
    
    cell.descLabel.emojiDelegate = self;
    [cell.descLabel sizeToFit];
    
    //    cell.descLabel.text = info[@"message"];
    [cell.descLabel setEmojiText:messageModel.timeViewStr];
    
    CGRect bodyFrame = CGRectMake(0, 0, 0, 0);
    //    if (cell.descLabel.text!=NULL) {
    bodyFrame = [cell.descLabel.text boundingRectWithSize:CGSizeMake(width, 500) options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil];

frame.size.height = ceil(bodyFrame.size.height);
    cell.descLabel.frame = frame;

时间: 2024-11-05 13:39:28

UILabel 根据文本内容设置frame的相关文章

webView根据显示内容动态设置frame

不多说,代码如下: 第一步设置代理,实现加载完毕的代理方法,重新根据显示内容设置frame - (void)webViewDidFinishLoad:(UIWebView *) webView { CGSize actualSize = [webView sizeThatFits:CGSizeZero]; CGRect newFrame = webView.frame; newFrame.size.height = actualSize.height; webView.frame = newFr

设置UILabel可变高度(根据文本内容自动适应高度)

@property(nonatomic)UILabel *showLabel; // 计算文本所占高度,计算出来之后设置label的高度 // 第一个参数:字体大小,字体大小/样式影响计算字体的高度 // 第二个参数:CGSize结构体,结构体中第一个参数表示宽度,宽度的设置影响计算文本的高度,很明显越宽,高度越小:结构体中第二个参数表示最大能有多高,比如我们写为100,那么即使文本高度计算出来是200, 这个方法也会返回100, 所以一般情况下我们把它写为MAXFLOAT, 表示能有多高返回多

【Jsoup学习礼记】设置元素的文本内容

问题 你需要修改一个HTML文档中的文本内容 方法 可以使用Element的设置方法:: Element div = doc.select("div").first(); // <div></div> div.text("five > four"); // <div>five > four</div> div.prepend("First "); div.append(" La

伪元素练习( css动态设置文本内容)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

PDF的文本内容怎么编辑设置

处理文档的时候如果遇到PDF格式的文件需要修改的话就很头疼,文字的编辑也没有word那样方便,而且PDF文件在阅读浏览和编辑上都是由不同软件来进行操作的,这让许多人以为PDF文件是不能编辑的,其实不然,PDF文档的文字也是可以编辑的. PDF文件可以直接进行编辑,用pdf的编辑工具打开文件就可以进行相应的操作.加密的文档只需要输入密码就可以正常操作. 文件打开后一般会有左右两个窗格,页面缩略图和页面编辑区,页面缩略图是用来方便切换当前编辑的页面的.如果没有显示缩略图窗格的话可以通过“视图-页面缩

IE8下动态生成 option 无法设置文本内容

问题: 1.在IE8下,JS动态添加 option 的时候,value 有值,但是文本内容添加不上 例:<option value="北京"></option> var osheng = document.getElementById("osheng");//获取下拉框对象 var option = new Option("北京", "北京"); osheng.appendChild(option);/

UILabel的相关属性设置

在iOS编程中UILabel是一个常用的控件,下面分享一下UILabel的相关属性设置的方法. 很多学习iOS6编程都是从storyboard开始,用到UILabel时是将控件拖到storyboard中生成实现,如果想要在-(void)viewDidLoad中用代码如[_label initWithFrame:CGRectMake(X,Y,WIDTH,HEIGHT)]方法改变拖拽到storyboard的label的大小是行不通的,因为程序加载时先执行了-(void)viewDidLoad的代码,

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

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

逃的过初一逃不过十五之三个输入框文本内容检测的实现及测试

上周偷懒来着,就没有完成EditBox的实现,来进行测试...终于,这周逃不过了,老师布置的任务是完成三个文本框的输入并同时检测文本内容... 题目要求如下: 允许1到6个英文字符或数字,按OK结束 有效等价类: 长度:1到6:字符:a-z,A-Z,0-9 无效等价类:长度:0,7:字符:英文.数字以外字符,控制字符,标点符号等 略有不同的地方是这回要求三个文本框同时输入内容,点击OK之后同时对三个文本框的内容进行检测,并输出检测结果. 好~偷懒考虑,我就选择了比较好用的JAVA进行实现,主要原