嗨我正在尝试根据里面的文字调整字符串大小。但是,如果文本(1个单词文本链接)对于我用来调整大小的宽度来说太长了,就像下面一样;标签不符合它的大小。我正在使用的代码是;
UILabel *gettingSizeLabel = [[UILabel alloc] init];
gettingSizeLabel.font = [UIFont fontWithName:@"HelveticaNeue" size:14];
gettingSizeLabel.text = messageData.TEXT;
gettingSizeLabel.numberOfLines = 0;
gettingSizeLabel.lineBreakMode = NSLineBreakByWordWrapping | NSLineBreakByTruncatingTail;
CGSize maximumLabelSize = CGSizeMake(240, 9999);
CGSize expectSize = [gettingSizeLabel sizeThatFits:maximumLabelSize];
在我写的时候,我希望将文本宽度调整为240(最大),它也需要多行。但结果可以计算超过240。 感谢
答案 0 :(得分:0)
这一行是非法的:
gettingSizeLabel.lineBreakMode = NSLineBreakByWordWrapping | NSLineBreakByTruncatingTail;
lineBreakMode
不是位掩码。我很惊讶这甚至可以编译,但它确实是切换到Swift的一个很好的理由,这个错误是不可能的。
如果你解决了这个问题,它可以正常工作(这是Swift,但它不会给你带来任何麻烦):
let s = "https://test.mobiletest.com/apps/12345678/install/abc123abc123abc123abc124"
let lab = UILabel()
lab.numberOfLines = 0
lab.text = s
lab.lineBreakMode = .ByWordWrapping
let result = lab.sizeThatFits(CGSizeMake(240,10000))
// (232.666666666667, 61.0)