UILabel Autoshrink不适用于动态文本和特殊字符

时间:2013-10-15 13:31:39

标签: objective-c ios7 uilabel nsattributedstring dynamic-text

我正在使用iOS 7的新动态文本功能作为表格视图行的副标题。我在IB中设置了UILabel如下:

enter image description here

这是我在代码中设置UILabel的内容的方法:

NSAttributedString *checkmarkAttributedString = [[NSAttributedString 
      alloc]initWithString:@"☑"];
[detailAttributedString appendAttributedString:checkmarkAttributedString];

这是没有正确自动收缩的结果(字体大小应缩小并避免“...”):

enter image description here

如何让autoshrink工作?

当我不在字符串的开头添加特殊字符(选中标记)时,它似乎正常工作。

2 个答案:

答案 0 :(得分:3)

iOS 6中存在一个错误,适用于iOS 7, 在iOS 6中,如果文本是多行的,那么它就不会缩小。

答案 1 :(得分:2)

不确定,但看起来最小字体比例中有逗号。不应该是0.4吗?

否则在你的cellForRowAtIndexPath方法中尝试这个。

MyCustomTableViewCell *cell = [tableview dequeueReusableCellWithIdentifier:identifier];
cell.detailLabel.adjustsFontSizeToFitWidth = YES;