Sko*_*ota 10 cocoa-touch objective-c uilabel ios
我有一个UILabel lineBreakMode设置为UILineBreakModeWordWrap.这工作正常,除非我有一块没有空格的长文本.在这种情况下,它不会包裹文本的长平板,而是在它到达UILabel框架的右端时切断它.我怎么能告诉的UILabel,它应该包裹在这种情况下一个字符边界上只(实质上相当于UILineBreakModeCharacterWrap设置,但仅限于spaceless文本的那些漫长的砖).
提前致谢!
Sko*_*ota 10
对于其他任何有同样问题的人,我最终用一个UITextView而不是一个来解决它UILabel.这是最好的解决方案,原因有两个:
它不需要任何自定义行为来确定文本是否包含空格并更改UILabel到/从单词/字符换行的换行模式.
更重要的是,有一个边缘情况,你可能有正常的单词(你想要包装在单词边界上)加上超长文本(你需要在字符边界上包装).如果没有写一些逻辑来在一个超长的文本中插入一个空格(在正确的位置)来强制"假的自动换行"我根本无法看到任何方法来处理文字和字符的包装,具体取决于具体情况,在一个UILabel.在UITextView处理这种情况自动,上破字边界或字符边界是必要的.
有关我如何执行此操作的详细信息,我有一行UITextView禁用编辑和滚动.我还设置了.contentInset去除填充物使它看起来(对于毫无防备的眼睛)就像一个UILabel.然后我使用该sizeWithFont:constrainedToSize:lineBreakMode:方法确定渲染文本的框架,并相应地调整框架UITextView,使其完全适合文本.
希望这有帮助!
| 归档时间: |
|
| 查看次数: |
20445 次 |
| 最近记录: |