NSMutableString appendFormat 遇到的问题 附上内容 请帮忙看看,问题很怪 财富值1

2016-10-31 14:16发布

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]]; 移除空格和换行也没有作用.

我估计是拼装内容的问题,但是这个问题没有办法解决么.

2条回答
bbbbbb - 码农一枚,热爱写代码
1楼 · 2016-10-31 15:00.采纳回答

对于UITextView 各种 处理文本的UI 控件会改变文本的排版问题,使用NSMutableAttributedString 可以解决.
NSString* str = [NSString stringWithFormat:@"附件(%ld):",str1];

不是强行转行,在排版的时候系统将
“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
因为你加了空格,区分开每一个分号前是一个整体,所以在排版的时候就不会出现你的这个问题。

一周热门 更多>