[英]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.