我的应用中有一个FAQ部分,但我必须使用不可编辑的UITextView以某种方式呈现它。就像下面一样,
如何取消录音?
一个。您可以通过按取消(红色'X')按钮
取消正在进行的录制 in the center of the speaker on the recording screen. The audio recording
will not be saved.
但问题是你可以看到必须用一些填充来显示,下一行应该在答案线"不在A" 之下。并且有一个巨大的问题文档,因此我无法手动格式化。它适用于iPhone和iPad,所以我的UITextView宽度不同。有没有解决这类问题的方法?
答案 0 :(得分:2)
我建议使用NSAttributedString
和NSParagraphStyle
结合NSParagraphAttributeName
。
这是一个例子:
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:yourString];
int indent1 = 0;
int indent2 = 20;
int indent3 = 2*indent2;
NSMutableParagraphStyle *styleTitleByNumber = [[NSMutableParagraphStyle alloc] init];
[styleTitleByNumber setFirstLineHeadIndent:indent1];
[styleTitleByNumber setHeadIndent:indent1];
NSMutableParagraphStyle *styleTitleByLetter = [[NSMutableParagraphStyle alloc] init];
[styleTitleByLetter setFirstLineHeadIndent:indent2];
[styleTitleByLetter setHeadIndent:indent2];
NSMutableParagraphStyle *styleSimpleText = [[NSMutableParagraphStyle alloc] init];
[styleSimpleText setFirstLineHeadIndent:indent3];
[styleSimpleText setHeadIndent:indent3];
[attributedString addAttribute:NSParagraphStyleAttributeName
value:styleTitleByNumber
range:rangeOfTitleByNumber];
[attributedString addAttribute:NSParagraphStyleAttributeName
value:styleTitleByLetter
range:rangeOfTitleByLetter];
[attributedString addAttribute:NSParagraphStyleAttributeName
value:styleSimpleText
range:rangeOfSimpleText];
[yourTextView setAttributedText:attributedString];
现在,根据您的初始文本的格式,我将告诉您如何应用哪种样式(对于NSRange
参数),或者您也可以,如果不同的部分分开应用直接影响NSAttributedString
,然后将它们全部合并。