设置NSFontAttributeName时,UItextview将忽略行高

Ber*_*rez 5 uitextview nsattributedstring

好吧,我曾在几个地方搜索过,虽然有些人据称找到了修复,但它似乎并不适用于我的情况.

我正在尝试在程序上设置几个UItextviews的行高,如下所示:

 UITextView *lab = [LocalTexts objectAtIndex:j];

    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    paragraphStyle.lineHeightMultiple = 50.0f;
    paragraphStyle.maximumLineHeight = 50.0f;
    paragraphStyle.minimumLineHeight = 50.0f;

    NSString *string = lab.text;
    NSDictionary *ats = @{
    NSFontAttributeName : [UIFont fontWithName:@"DIN Medium" size:16.0f],
    NSParagraphStyleAttributeName : paragraphStyle, 
    };

    lab.attributedText = [[NSAttributedString alloc] initWithString:string attributes:ats];
Run Code Online (Sandbox Code Playgroud)

奇怪的是,如果我禁用NSFontAttributeName赋值,行高也会起作用,如果我将Paragraph样式设置为具有某个段落高度,它总是有效,所以NSParagraphStyleAttribute不会被完全忽略.我不知道这是一个错误还是我实际上做错了什么.

我尝试将其实现为纯CORE TEXT,但它对于当前的项目范围来说有点过于复杂.

希望有人能指出我正确的方向.谢谢.

Coc*_*ics 1

这是 NSHTMLWriter 中的一个已知错误,UITextView 使用它来将属性字符串转换为 HTML: http: //www.cocoanetics.com/2012/12/radar-uitextview-ignores-minimummaximum-line-height-in-attributed-细绳/

您可以使用 DTCoreText 中的 UITextView 替换来正确渲染此文本: https: //github.com/Cocoanetics/DTCoreText