Heim > Fragen und Antworten > Hauptteil
NSMutableString* str_attachMent = [NSMutableString stringWithFormat:@"附件(%ld):",attachedCount];
for ( int i = 0 ; i < attachedCount ; i++) {
FileInfo *fileInfo = (FileInfo*)mailInfo.attachedArr[i];
if (i < mailInfo.attachedCount - 1)
{
[str_attachMent appendFormat:@"%@;",fileInfo.fileName];
}else {
[str_attachMent appendString:fileInfo.fileName];
}
}
最后str_attachMent得到拼装好的字符串是如下内容:
附件(9): 404.HTML;BLOG.HTML;BLOG_SINGLE.HTML;CONTACT.HTML;INDEX.HTML;LOGIN.HTML;MEN.HTML;REGISTER.HTML;SINGLE.HTML
可以把内容复制到记事本上面试验下,为什么强行被换行了,而且我是没办法把404这行移到附件(9):后面
[str_attachMent stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 移除空格和换行也没有作用.
我估计是拼装内容的问题,但是这个问题没有办法解决么.
高洛峰2017-04-18 09:44:59
不是强行转行,在排版的时候系统将
“404.HTML;BLOG.HTML;BLOG_SINGLE.HTML;CONTACT.HTML;INDEX.HTML;LOGIN.HTML;MEN.HTML;REGISTER.HTML;SINGLE.HTML”看作是一个单词了,在显示的时候“附件(9): ”所在的当前行无法将其完整显示,所以自动跳转到下一行显示,除非你显示的文本框够宽。就好比你在发问题的时候直接像这样打印这句话,它也会换行显示,
附件(9): 404.HTML;BLOG.HTML;BLOG_SINGLE.HTML;CONTACT.HTML;INDEX.HTML;LOGIN.HTML;MEN.HTML;REGISTER.HTML;SINGLE.HTML
但是你在每一个分号后面加上一个空格,效果就是这样的:
附件(9):404.HTML; BLOG.HTML; BLOG_SINGLE.HTML; CONTACT.HTML; INDEX.HTML; LOGIN.HTML; MEN.HTML; REGISTER.HTML; SINGLE.HTML
因为你加了空格,区分开每一个分号前是一个整体,所以在排版的时候就不会出现你的这个问题。
大家讲道理2017-04-18 09:44:59
对于UITextView 各种 处理文本的UI 控件会改变文本的排版问题,使用NSMutableAttributedString 可以解决.
NSString* str = [NSString stringWithFormat:@"附件(%ld):",str1];
NSMutableParagraphStyle* linebreak = [[NSMutableParagraphStyle alloc]init];
linebreak.lineBreakMode = NSLineBreakByCharWrapping;
NSMutableAttributedString *str_attachMent = [[NSMutableAttributedString alloc] initWithString:str attributes:@{NSParagraphStyleAttributeName:linebreak}];
textView.attributedText = str_attachMent;