IOS7中自动计算label的宽度和高度的方法

 1 #import "ViewController.h"
 2
 3 @implementation ViewController
 4
 5 - (void)viewDidLoad {
 6     [super viewDidLoad];
 7
 8     //根据固定的宽度计算 计算label的高度
 9     [self sizeToLabelHeight];
10
11     //根据固定的高度 计算label的宽度
12     [self sizeToLabelWidth];
13
14 }
15
16 /**
17  *  自动计算label的宽度  前提高度固定
18  *
19  */
20 - (void)sizeToLabelWidth
21 {
22     UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
23     label.textColor = [UIColor whiteColor];
24     label.font = [UIFont systemFontOfSize:13];
25     label.numberOfLines = 0; //这个属性 一定要设置为0   0表示自动换行   默认是1 不换行
26     label.backgroundColor = [UIColor blackColor];
27     label.textAlignment = NSTextAlignmentLeft;
28     NSString *str = @"fsdfsfnksdfjsdkhfjksdhfjdolfsdfsfnksdfjsdkhfjksdhfjsdkhfjksdhfjdojdol";
29
30
31     //第一种方式
32     //    CGSize size = [str sizeWithFont:label.font constrainedToSize: CGSizeMake(MAXFLOAT,label.frame.size.height) lineBreakMode:NSLineBreakByWordWrapping];
33
34     //第二种方式
35
36     NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
37     attrs[NSFontAttributeName] = [UIFont systemFontOfSize:13];
38
39     CGSize size =  [str boundingRectWithSize:CGSizeMake( MAXFLOAT,label.frame.size.height) options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
40
41     label.frame = CGRectMake(5, 0, size.width, 100);
42     label.text = str;
43
44     [self.view addSubview:label];
45 }
46
47
48 /**
49  *  自动计算label的高度  前提 :宽度固定
50  */
51 - (void)sizeToLabelHeight
52 {
53
54     UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
55     label.textColor = [UIColor whiteColor];
56     label.font = [UIFont systemFontOfSize:13];
57     label.numberOfLines = 0;//这个属性 一定要设置为0   0表示自动换行   默认是1 不换行
58     label.backgroundColor = [UIColor blackColor];
59     label.textAlignment = NSTextAlignmentLeft;
60
61     NSString *str = @"fsdfsfnksdfjsdkhfjksdhfjdolfsdfsfnksdfjsdkhfjksdhfjsdkhfjksdhfjdojdol";
62
63     //第一种方式
64     //    CGSize size = [str sizeWithFont:label.font constrainedToSize: CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:NSLineBreakByWordWrapping];
65
66     //第二种方式
67     NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
68     attrs[NSFontAttributeName] = [UIFont systemFontOfSize:13];
69
70     CGSize size =  [str boundingRectWithSize:CGSizeMake(label.frame.size.width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
71
72     label.frame = CGRectMake(100, 100, 100, size.height);
73     label.text = str;
74
75     [self.view addSubview:label];
76 }
77
78
79 @end
时间: 2024-08-24 06:16:19

IOS7中自动计算label的宽度和高度的方法的相关文章

swift计算label动态宽度和高度

swift计算label动态宽度和高度 func getLabHeigh(labelStr:String,font:UIFont,width:CGFloat) -> CGFloat { let statusLabelText: NSString = labelStr let size = CGSizeMake(width, 900) let dic = NSDictionary(object: font, forKey: NSFontAttributeName) let strSize = st

如何在onCreate方法中获取视图的宽度和高度

你可以通过视图的getWidth()和getHeight()来获取视图的宽度和高度. 但是,可能会让你失望的是,如果你直接在onCreate方法内调用这两个函数,你会的到0. 为什么呢? 这是因为,当onCreate被调用的时候,视图的内容正在被LayoutInflater来填充xml布局. 这个过程会填充布局,但是暂时不会设置视图的大小. 那么视图到底什么时候获得自己的大小尺寸呢? 实际上是在Layout以后,而layout又是在onCreate调用以后. 那么,如果我们要在onCreate方

JavaScript与jQuery中获取屏幕的宽度和高度的常用方法以及HTML中精确定位

浏览器的宽高示意图: JavaScript中常用的方法: 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document.body.offsetWidth (包括边线的宽) 网页可见区域高: document.body.offsetHeight (包括边线的高) 网页正文全文宽: document.body.scrollWidth 网页正文全文高: document.body.scr

Js中获取显示器、浏览器以及窗口等的宽度与高度的方法

网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWidth (包括边线的宽) 网页可见区域高:document.body.offsetHeight (包括边线的宽) 网页正文全文宽:document.body.scrollWidth 网页正文全文高:document.body.scrollHeight 网页被卷去的高:document.body.scr

根据文字计算label的宽度和高度

// 滚动条中的描述文字 UILabel *desLabel = (UILabel *)[appCell.mAppDescription viewWithTag:101]; desLabel.numberOfLine = 0; desLabel.text = _appDetailModel.mDescription; NSLog(@"desLabel.text = %@", desLabel.text); UIFont *font = [UIFont fontWithName:@&qu

Android 设置子控件的宽度或高度为 match_parent来填充父控件中的剩余宽度或高度的方法

先上几张效果图, 如下:          上述四张图要实现的布局效果是: 假如父控件中包含两个子控件, 其中一个子控件(上图中为红色button)的宽度是固定数值, 而另一个子控件(上图中为绿色button)的宽度不固定, 要想让这两个子控件的总宽度刚好等于父控件的宽度.可以将宽度不固定的那个控件的宽度设置为match_parent来实现, 但有些细节需要注意, 否则即使设置了match_parent, 也不能出现如上的效果. 注意细节如下: 上述效果可以使用RelativeLayout实现.

Unity4.6中修改RectTransform的宽度和高度

Unity4.6新的UI相对于NGUI是有点功能不完善,但是插件毕竟和原生的没得比,所以花了点时间学习心得UI系统,结果碰到了如题所述的问题 我想做一个ScrollView,使用Unity4.6的新UI 第一步:创建一个Canvas,之后在canvas下创建child子物体Scroll View,要注意创建的子物体要带有RectTransform这个属性之后在新建的空物体下再创建子物体Items 第二步:添加脚本,选中Scroll View,添加Mask组件和Scroll Rect组件,然后将I

HackThirteen 在onCreate()方法中获取View的宽度和高度

1.概要: Android源代码中很多模块都使用了post()方法,深入理解框架曾运行机制对于避开类似于本例中的小陷阱是很重要的 2.问题提出: 如果开发一些依赖于UI控件的宽和高的功能,开发者可能会用到View的getHeight()和getWidth()方法.试图在Activity的 onCreate()方法中获取控件的宽和高.遗憾的是如果开发者在onCreate()方法中调用上述方法,会发现返回值都是0. 3.解释问题原因: 当onCreate()方法被调用时,会通过LayoutInfla

php正则匹配video 中或者img的宽度和高度。

preg_match('/\bwidth="(\d+)"/',$contentimages, $vwith);//宽 preg_match('/\bheight="(\d+)"/',$contentimages, $vheight);//高 原文地址:https://www.cnblogs.com/xiager/p/8252819.html