Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Hyphenation in native iOS app

How can I activate automatic hyphenation in iOS?

I have tried to set the hyphenation factor to 1 in the attributed text options of an UILabel, however I don't get any hyphens though.

like image 474
Chris Avatar asked Oct 31 '13 14:10

Chris


People also ask

How do I turn on automatic hyphenation in pages?

Hyphenate text automaticallyOn the Tools menu, click Hyphenation. Select the Automatically hyphenate document check box.

What is hyphenation in Pages?

By default, Pages moves words that don't fit on a line of text to the next line. You can have Pages hyphenate those words instead as you type. You can adjust this setting for your entire document or for specific paragraphs.


1 Answers

  1. The iOS 7 way. Use an UITextView instead of an UILabel. The hyphenationFactor (either as a NSParagraphStyle attribute or as a NSLayoutManager property) should work then (thanks to the new TextKit).
  2. The Web way. Use an UIWebView and the -webkit-hyphens CSS properties.
  3. The Core Text or the hard way. Use the CFStringGetHyphenationLocationBeforeIndex() function that you mentioned in a comment. This function only gives you a hint about where to put hyphens in a string for a specific language. Then you have to break your lines of text yourself using the Core Text functions (like CTLineCreateWithAttributedString() and all). See Getting to Know TextKit (the paragraph called Hyphenation explains the logic of the Core Text process, with no code) and Hyphenation with Core Text on the iPad (gives some code sample, but the website seems to be down right now). It's probably going to be more work than you want!
like image 98
Guillaume Avatar answered Nov 03 '22 16:11

Guillaume