2011-08-30 14 views

Respuesta

3

Si quieres saber necesario altura por alguna ancho puede utilizar el código de abajo:

NSString *yourString = @"My great text o0"; 
CGSize s = [yourString sizeWithFont:[UIFont systemFontOfSize:12] constrainedToSize:CGSizeMake(width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap]; 
// s.height is your your height 

Para más información lea here

+0

hola ¿Cómo puedo agregar botón en o0 posición del cuadro de texto? ¿alguna idea? –

+0

Programe su ubicación de forma automática en la vista y luego agregue UIButton con estilo personalizado y fondo claro. Ponlo en "o0". – Nekto

+0

por favor dame el código ¿cómo puedo calcular la ubicación en la vista? ¿Alguna idea? –

5

probar esto

NSString *sample = @"..."; 

CGSize txtSz = [sample sizeWithFont:[UIFont fontWithName: @"Helvetica" size: 16]]; 

CGRect lblFrame = CGRectMake(10,50, txtSz.width, txtSz.height); 

yourLabel.frame = lblFrame; 
20
label.text = @"some text of random length"; 
[label sizeToFit]; 

Si el texto puede tener más de 1 línea, agregue label.numberOfLines = 0; antes de llamar a sizeToFit;

+0

Gracias, el tamañoToFit acaba de resolver mi problema: estaba obteniendo la etiqueta en la posición correcta solo en la segunda vez que presioné el botón. –

+0

Genial, muchas gracias! –

3

Han pasado 2016 y sizeWithFont.

Ahora, y en Swift 3, uso:

let text = "Random Text" 
let size = (text as NSString).size(attributes: [NSFontAttributeName : UIFont.systemFont(ofSize: 50)]) 
let label = UILabel(frame: CGRect(x: 0, y: 0, width: size.width, height: size.height)) 
+0

Gracias por mostrarme cómo hacerlo, pero me preocupa la parte del 'texto como NSString'. Hay una forma más rápida y "nativa" de hacer esto? – Gattster

+0

No es que yo sepa ... En el futuro, con suerte, NSString estará completamente enlazado a String. –

Cuestiones relacionadas