IOS 动态获取 UILabel 元素的宽度和高度

//高度自适应
UIFont *font = [UIFont fontWithName:@"Arial" size:13];
//设置一个行高上限
CGSize size = CGSizeMake(320,1000);
//计算实际frame大小,并将label的frame变成实际大小
CGSize labelsize = [entity.content sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];
DebugLog(@"height = %f", height) ;
方法一:
CGSize titleSize = [titleContent boundingRectWithSize:CGSizeMake(kScreen_Width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13]} context:nil].size;
或方法二:
CGSize labelsize = [str sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];

//获取单行字符串的宽度和高度
NSString *content = @"获取 UILabel 宽度和高度测试";
CGSize size =[content sizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13]}];

//获取多行字符串的宽度和高度
UILabel *titleLabel = [[UILabel alloc]init];
    titleLabel.font = [UIFont systemFontOfSize:1];
    NSString *titleContent = @"获取 UILabel 宽度和高度测试获取 UILabel 宽度和高度测试获取 UILabel 宽度和高度测试获取 UILabel 宽度和高度测试获取 UILabel 宽度和高度测试获取 UILabel 宽度和高度测试获取 UILabel 宽度和高度测试";
    titleLabel.text = titleContent;
    titleLabel.numberOfLines = 0;//多行显示,计算高度
    titleLabel.textColor = [UIColor lightGrayColor];
    CGSize titleSize = [titleContent boundingRectWithSize:CGSizeMake(kScreen_Width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13]} context:nil].size;
    titleLabel.size = titleSize;
    titleLabel.x = 0;
    titleLabel.y = 0;
    [self.view addSubview:titleLabel];
    
//或者
//初始化label
UILabel *label = [[UILabel alloc] init];
//设置自动行数与字符换行
[label setNumberOfLines:0];
[label.lineBreakMode:UILineBreakModeWordWrap]; 
// 测试字串
NSString *str = @"获取 UILabel 宽度和高度测试获取 UILabel 宽度和高度测试获取 UILabel 宽度和高度测试获取 UILabel 宽度和高度测试获取 UILabel 宽度和高度测试获取 UILabel 宽度和高度测试获取 UILabel 宽度和高度测试";
UIFont *font = [UIFont fontWithName:@"Arial" size:13];
//设置一个行高上限
CGSize size = CGSizeMake(320,1000);
//计算实际frame大小,并将label的frame变成实际大小
CGSize labelsize = [str sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];
[label setFrame:CGRectMake:(0,0, labelsize.width, labelsize.height)];
时间: 2024-10-05 07:21:13

IOS 动态获取 UILabel 元素的宽度和高度的相关文章

获取dom元素的宽度和高度

一.获取css的大小 1.第一种通过内联样式 var box = document.getElementById('box'); var w = box.style.width; var h = box.style.height; 2.通过计算元素的大小(但是在ie情况下有一个问题,那就没写widht和height的css就返回auto); var style = window.getComputedStyle ? window.getComputedStyle(box,null) : null

李洪强iOS开发之动态获取UILabel的bounds

李洪强iOS开发之动态获取UILabel的bounds 在使用UILabel存放字符串时,经常需要获取label的长宽数据,本文列出了部分常用的计算方法. 1.获取宽度,获取字符串不折行单行显示时所需要的长度  CGSize labelBounds = [str sizeWithFont:font constrainedToSize:CGSizeMake(MAXFLOAT, 30)]; 注:如果想得到宽度的话,size的width应该设为MAXFLOAT. 2.获取高度,获取字符串在指定的siz

动态获取UILabel的bounds

动态获取UILabel的bounds 在使用UILabel存放字符串时,经常需要获取label的长宽数据,本文列出了部分常用的计算方法. 1.获取宽度,获取字符串不折行单行显示时所需要的长度  CGSize labelBounds = [str sizeWithFont:font constrainedToSize:CGSizeMake(MAXFLOAT, 30)]; 注:如果想得到宽度的话,size的width应该设为MAXFLOAT. 2.获取高度,获取字符串在指定的size内(宽度超过la

jquery如何获取元素的宽度和高度

jquery如何获取元素的宽度和高度: 这当然是比较基础的问题,不过有可能初学者还是不够明了,下面就简单介绍一下. 获取元素的宽度: $(selector).width() 获取元素的高度: $(selector).height() selector是选择器,例如id.类和元素选择器登登. 原文地址是:http://www.51texiao.cn/jqueryjiaocheng/2015/0613/4046.html 最为原始地址是:http://www.softwhy.com/forum.ph

CSS单位,em,rem以及元素的宽度和高度

一.em和rem 说到自适应布局,就不得不提到rem这个单位. 简单的说 em: 就是字体大小,根据元素自身的字体大小来定,如果自身没有定义字体大小,则继承父元素的字体大小,即1em = 1 font-size; rem: 和em差不多,可以看成是root-em,是根据根元素的字体大小来定义的,即html设置的字体大小来定义,默认html的字体大小是16px: 用一个demo来说明最好: <style> html{ font-size: 50px; } #wrapper{ font-size:

js和jquery获取图片真实的宽度和高度

1.什么时候需要获取图片真实的宽度和高度 在做pc网页的时候,有时候会考虑按照插入的图片的尺寸来判断图片是横图还是竖图.然后判断过后给予不同的展示方式! 另外一种就是在手机页面上,在新闻页插入的图片往往都是按照图片的原尺寸来展示,如果手机屏幕太小,太大的图就会超出去!这时候有两种解决办法 1)给所有的图片加上这样的样式 1.news img{margin:5px auto; display:block;width:100%; height:auto;}但是这种方式有另外一个问题就是,如果插入的图

js和jquery如何获取图片真实的宽度和高度

按照插入的图片的尺寸来判断图片是横图还是竖图.然后判断过后给予不同的展示方式,下面为大家介绍下js和jquery如何获取图片真实的宽度和高度 1.什么时候需要获取图片真实的宽度和高度 在做pc网页的时候,有时候会考虑按照插入的图片的尺寸来判断图片是横图还是竖图.然后判断过后给予不同的展示方式! 另外一种就是在手机页面上,在新闻页插入的图片往往都是按照图片的原尺寸来展示,如果手机屏幕太小,太大的图就会超出去!这时候有两种解决办法 1)给所有的图片加上这样的样式 .news img{margin:5

javascript获取屏幕的可用宽度和高度

说明 获取屏幕的可用宽度和高度 示例 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>显示浏览器窗口的高度和宽度</title> <link rel="styleshee

Android下在onCreate中获取控件的宽度和高度(通过回调)

有时候需要在onCreate方法中知道某个View组件的宽度和高度等信息, 而直接调用View组件的getWidth().getHeight().getMeasuredWidth().getMeasuredHeight().getTop().getLeft()等方法是无法获取到真实值的,只会得到0. 这是因为View组件布局要在onResume回调后完成. 下面提供实现方法: 第一种: onGlobalLayout回调会在布局完成时自动调用 img1.getViewTreeObserver().