UILabel con numberOfLines y lineBreakMode

Estoy trabajando en un proyecto que tiene que ser compatible tanto con iOS6 como con iOS7. Mi problema es que funciona diferente en diferentes sistemas. Estoy intentando crear UILabel con un número de líneas igual a 2, pero cuando configuro su modo de salto de línea a NSLineBreakByTruncatingTail funciona diferente.

Explicación (numberOfLines = 2, text = @ "long teeexxxttt"):

iOS7 iOS6 NSLineBreakByWordWrapping ---------- ---------- |long | |long | |teeeexxxtt| |teeeexxxtt| ---------- ---------- NSLineBreakByTruncatingTail ---------- ---------- |long | |long te...| |teeeexx...| | | ---------- ---------- ^ ^ | | correct incorrect - shows only one line 

¿Cómo lo soluciono?

El problema es iOS6 y anterior no actualizará UILabels multilínea con UIFont personalizado y NSLineBreakByTruncatingTail, pero puede archivar el mismo resultado utilizando autoreselling o autolayout.

Sé que esta es una vieja pregunta, pero recientemente tuve el mismo problema. Encontré que con restricciones tenía que establecer el ancho preferido para que los puntos suspensivos se comportaran correctamente:

 yourLabel.prefernetworkingMaxLayoutWidth = width; 

UILable.prefernetworkingMaxLayoutWidth

Swift 2.1

 yourLabel.text = "your text" yourLabel.numberOfLines = 0 yourLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping yourLabel.sizeToFit()