iOS 5/6与iOS 7多行标签行间距比较。

10

我在iOS 7上运行我的应用程序时发现多行标签(非属性化纯文本)呈现出小的行间距。有人知道如何处理iOS 5兼容性吗?

iOS 5/6

iOS 5/6

iOS 7

iOS 7


你得到解决方案了吗? - Sudha Tiwari
2个回答

18
if(NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1)
{
    NSFont *font = /* set font */;

    NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
    [paragraphStyle setLineSpacing: /* required line spacing */];

    NSDictionary *attributes = @{ NSFontAttributeName: font, NSParagraphStyleAttributeName: paragraphStyle };
    NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:@"strigil" attributes:attributes];

    [label setAttributedText: attributedString];
}
else
{
    /* old method */
}

如果将行间距减少到0“零”不足以满足需求,您应该查看段落样式的“maximumLineHeight”属性。 - Riad Krim
@TwiterZX 减小行高可能会导致一些字符重叠的问题。 - Léo Natan
@Leo Natan 我同意,如果maximumLineHeight小于字体行高,那么这可能会导致文本绘制问题。 - Riad Krim
@TwiterZX 像“Q”这样的字母仍然有下降部分,以及其他Unicode字符。但是没错,你的评论也应该被考虑进去。 - Léo Natan
1
因为我认为alloc] init]不会返回默认段落样式。 - Léo Natan
显示剩余2条评论

1

我在iOS5/6中使用了MSLabel。 在iOS7发布后,MSLabel仍然正常工作。

iOS5/6和iOS7之间的标签没有任何区别。 你可以在https://github.com/LemonCake/MSLabel尝试使用MSLabel。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接