UITextView中的对齐方式-iPhone

UITextView中的对齐方式-iPhone,iphone,uitextview,Iphone,Uitextview,在我的应用程序中,我有一个包含许多行的UITextView,但我需要具有正确外观的数据 是否可以在UITextView中对齐?文本的对齐方式没有设置,只有中间、左侧和右侧。如果您希望对齐,即每行的字符数相同或类似,您可以对输入的文本进行格式化,使其在x个字符或单词后返回回车符,或类似的内容。我找到了一个可行的解决方案。首先,您需要更改UITextView并使用UIWebView 详细信息。h @interface Details : UIViewController { IBOutlet

在我的应用程序中,我有一个包含许多行的
UITextView
,但我需要具有正确外观的数据


是否可以在
UITextView
中对齐?

文本的对齐方式没有设置,只有中间、左侧和右侧。如果您希望对齐,即每行的字符数相同或类似,您可以对输入的文本进行格式化,使其在x个字符或单词后返回回车符,或类似的内容。

我找到了一个可行的解决方案。首先,您需要更改UITextView并使用
UIWebView

详细信息。h

@interface Details : UIViewController {
    IBOutlet UIWebView *descripcion;
}

@property (nonatomic, retain) UIWebView *descripcion;
然后,按如下方式加载
UIWebView

详细信息.m

[descripcion loadHTMLString:[NSString stringWithFormat:@"<div align='justify'>%@<div>",YOUR_TEXT] baseURL:nil];
[Description loadHTMLString:[NSString stringWithFormat:@“%@”,您的文本]baseURL:nil];
还有另一种选择

它明确支持对齐对齐。 而且它比
UIWebView
更轻量级,速度更快。因为它本质上是
CoreText
上的一个薄层,所以不需要像
UIWebView
这样繁重的布局过程

或者您可以使用另一个选项,只需直接使用较低级别的
CoreText
framework


无论如何,它们不支持文本编辑。如果您需要它,您必须自己实现它。

我知道这是一个老问题,但现在我们有了以下消息:

UITextView *textView = // init your text view
textView.textAlignment = NSTextAlignmentJustified;
就这样

更新:这仅适用于iOS 6及以上版本

有以下解决方案:

NSString *text1 = @"Sample text : A his is my weblog in English, German and Korean. If you want to know more about a pizza stone once it’s cooled down.";

NSMutableParagraphStyle *style =  [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
[style setAlignment: kCTJustifiedTextAlignment];

NSAttributedString * subText1 = [[NSAttributedString alloc] initWithString:text1 attributes:@{
                                                NSParagraphStyleAttributeName : style
                                     }];

_myUiTextView.attributedText = subText1;

对于从右到左的语言,如波斯语

    UITextPosition *beginning = textview.beginningOfDocument;
    UITextPosition *start = [textview positionFromPosition:beginning offset:0];
    UITextPosition *end = [textview positionFromPosition:start offset:[textview.text length]];

    UITextRange *textRange = [textview textRangeFromPosition:start toPosition:end];
    [textview setBaseWritingDirection:UITextWritingDirectionRightToLeft forRange:textRange];

    textview.textAlignment = NSTextAlignmentJustified;

当然,在苹果网站上有一个页面可以提供功能建议,我不记得它在哪里了tho=/但是除了白色背景上简单的黑色文本之外,样式设计需要通过CSS/内联html样式而不是cocoa属性来完成。你知道为什么这只适用于iOS6而不适用于iOS7吗?“我的UILabel上的NSTextAlignmentJustified在iOS7中不起作用。@MarkRamotowski,尝试改用UITextView。”。在iOS6和ios中为我工作iOS7@Sam我明白了。但是,我更愿意将其作为UILabel保存,而不是“userInteraction=NO”UITextview。@MarkRamotowski您找到ios7的任何内容了吗?@Shady Hi很抱歉回复太晚,我认为UILabel中的一个bug恐怕仍然存在。UITextView似乎更适合这样的东西和自定义字体。