在iPhone上截断的行尾(编辑:行尾理由)

时间:2014-09-10 19:17:33

标签: ios

当我在我的应用程序中使用.txt文件时(即使我尽可能多地修复它)最后的行会被截断。我希望文本到达行的末尾(一直到屏幕的右侧,就像第一行一样)。我应该使用其他类型的文件吗?如果是这样,哪个?如果没有,我如何让这些词语到达行尾?

由于

P.S。 cleantxt没有解决问题 enter image description here

我希望它看起来像这样

enter image description here

2 个答案:

答案 0 :(得分:2)

如果我正确地解释了你的问题(通过你的例子),这不是截断的问题,而是一个理由问题。你想要“完全对齐”,即从左到右插入文本,使文本显示为矩形文本块。

如果是,您使用的是UITextView:

适用于iOS 6及更早版本 UITextView * textView = @“”; //用表示.txt文件中文本的属性替换 textView.textAlignment = NSTextAlignmentJustified;

适用于iOS 7+(以上不推荐使用) 遗憾的是,您需要使用CoreText或UIWebView。 请参阅此帖子Justified Alignment in UITextView

答案 1 :(得分:0)

使用此代码获得相同的结果吗?

NSString *fileName = @"impressum.txt";
NSURL *url = [[NSBundle mainBundle] URLForResource:[fileName stringByDeletingPathExtension] withExtension:[fileName pathExtension]];

NSError *error;
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithFileURL:url
                                                                               options:@{NSDocumentTypeDocumentAttribute:NSPlainTextDocumentType}
                                                                    documentAttributes:nil
                                                                                 error:&error];

CGRect paragraphRect = [attributedString boundingRectWithSize:CGSizeMake(_textLabel.frame.size.width), CGFLOAT_MAX)
                                                          options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
                                                          context:nil];

CGRect frame = _textLabel.frame;
frame.size.height = paragraphRect.size.height;
_textLabel.frame = frame;

[_textLabel setAttributedText:attributedString];