繁体   English   中英

iOS:如何根据文本设置UILabel的框架?

[英]iOS : How can I set frame of UILabel according to its text?

我想开发一个功能,根据文本的意思设置UILabel框架,当文本改变时它的框架是否改变? 如果是,那么请分享任何链接或任何想法来开发这个。

提前致谢。

label.text = @"some text of random length";
[label sizeToFit];

如果文本可能超过1行,则添加label.numberOfLines = 0; 在调用sizeToFit之前;

试试这个

NSString *sample = @"...";

CGSize txtSz = [sample sizeWithFont:[UIFont fontWithName: @"Helvetica" size: 16]];

CGRect lblFrame = CGRectMake(10,50, txtSz.width, txtSz.height);

yourLabel.frame = lblFrame;

这是2016年和sizeWithFont早已不复存在。

现在,在Swift 3中,使用:

let text = "Random Text"
let size = (text as NSString).size(attributes: [NSFontAttributeName : UIFont.systemFont(ofSize: 50)])
let label = UILabel(frame: CGRect(x: 0, y: 0, width: size.width, height: size.height))

如果你想知道一些宽度的需要高度 ,你可以使用下面的代码:

NSString *yourString = @"My great text o0";
CGSize s = [yourString sizeWithFont:[UIFont systemFontOfSize:12] constrainedToSize:CGSizeMake(width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
// s.height is your your height

有关更多信息,请阅读此处

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM