Is there a way to use non breaking spaces in UILabel text?
For example, I have label with 2 lines and line breaking mode set to word wrap. The content for this label is read from database, where it's stored as a string. Now sometimes my text in label looks like that:
lorem ipsum some text
1
but I want to display it like that:
lorem ipsum some
text 1
so basicly, I need to force non breaking space between 'text' and '1'.
I've found some solution here, but I think it could work when the text is entered in source code file. In my case the text is in database.
Any suggestions?
I don't think there's a simple way to do this with UILabel. Of course one way to achieve the same effect is to manually insert a
"\n"
before "text"
in your example. Another option is to use a UIWebView with static HTML instead of the UILabel, so you can use an actual 
.Here's a Swift extension to fix an orphan in a string by replacing the last space with a non-breaking space:
Although note as of iOS 11, UILabels solve this problem automatically.
For Swift:
In Swift 4 I had to use all caps:
\U00A0
Example:
lorem ipsum some\U00A0text 1
Update Feb 2020 from the comments. Thanks to @corban:
If this is not going to happen often, you can do this:
You can dynamically generate where you put the \n using character counts, word counts etc...
Use the no-break space (\u00a0) ex:
@"hello**\u00a0**world!"
U+00A0 / no-break space / Common Separator, space
from: http://en.wikipedia.org/wiki/Whitespace_character