如何在UITextView中水平居中单行文本?

时间:2014-01-15 02:56:17

标签: ios objective-c cocoa-touch uitextview text-alignment

我有一个显示相当数量文本的UITextView。我需要在文本视图中水平居中一些但不是全部的文本行。

我尝试使用NSParagraphStyle实例设置NSParagraphStyleAttributeName,该实例的alignment属性为NSTextAlignmentCenter,在要居中的行的范围内。我也设置字体,因此居中的行是粗体。当我使用下面的代码执行此操作时,相关的行以粗体显示,但保持左对齐。

if (shouldCenterLine) {
    NSMutableParagraphStyle *centerStyle = [[NSMutableParagraphStyle alloc] init];
    centerStyle.alignment = NSTextAlignmentCenter;
    NSDictionary *attributes = @{NSParagraphStyleAttributeName : centerStyle,
                                 NSFontAttributeName : boldFont};
    [attributedString setAttributes:attributes range:lineRange];
}

如果我将相同的段落样式属性应用于文本视图的整个内容,则文本最终会按预期居中。

是否有可能说服UITextView将其文本的特定子范围置于中心?移动到UIWebView渲染生成HTML的唯一解决方案是什么?请注意,这适用于仍然支持iOS 6的应用,所以很遗憾,我无法使用Text Kit。

1 个答案:

答案 0 :(得分:1)

尝试在您应用样式的范围内围绕要居中的行周围的行返回。