Archie Gertsman
Archie Gertsman

Reputation: 1661

Swift splitting UILabel between two lines

Here's a picture of a UILabel getting split between two lines:

I'm okay with it getting split, but it's getting split awkwardly. Is there any way to distribute the text more evenly between the two lines? I.e. to have three words (no pun intended) on each line in this case. The string is coming from user input, so I need a solution that works for any string (character limit is 40). Also, I'm doing this programatically. Thanks!

Upvotes: 0

Views: 1052

Answers (1)

Tim
Tim

Reputation: 2098

Add a linebreak \n to the text where you want the split to happen.

EDIT

Here is a solution that splits the string in roughly half, based on spaces:

var str = "Hello, label, here is some variable text"

let length = str.characters.count // 40

var splitRange = str.range(of: " ", options: String.CompareOptions.literal, range: str.index(str.startIndex, offsetBy: length / 2)..<str.endIndex, locale: nil) // finds first space after halfway mark

var firstLine = str.substring(to: splitRange!.lowerBound) // "Hello, label, here is"
var secondLine = str.substring(from: splitRange!.upperBound) // "some variable text"

Upvotes: 4

Related Questions