根据文本行

时间:2015-09-09 16:49:45

标签: ios objective-c uilabel

我发现根据行数和文本数量调整包含换行符的标签非常困难。它在足够大的文本视图中显示得很好。但是,我喜欢标注尺寸的经济性 - 或者我对调整文本视图的尺寸感到满意 - 确切地说。

这是我在SO上的答案中使用的代码,但它对标签的大小没有影响。非常感谢有关如何使这项工作的任何建议:

NSString *list = self.list.list;
// use font information from the UILabel to calculate the size    
UITextView *view=[[UITextView alloc] initWithFrame:CGRectMake(0, 0, 280, 10)]; 
//make random size view
view.text=list;
CGSize size=[view sizeThatFits:CGSizeMake(280, CGFLOAT_MAX)];
// create a frame that is filled with the UILabel frame data
CGRect newFrame = _listLabel.frame;
// resizing the frame to calculated size
newFrame.size.height = size.height;
// put calculated frame into UILabel frame
_listLabel.frame = newFrame;

enter image description here

1 个答案:

答案 0 :(得分:0)

为什么要参考新创建的UITextView设置标签的框架,它会在你的内存中创建一个无用的对象,根据你的文本设置标签框只需使用这2行代码

lbl.numberOfLines=0;
[lbl sizeToFit];

它会使标签与文字一样大。