2011-08-30 11 views

risposta

3

Se vuoi sapere necessario altezza per qualche larghezza è possibile utilizzare il codice qui sotto:

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 

Per ulteriori informazioni leggere here

+0

ciao come posso pulsante Aggiungi o0 posizione cornice di testo? qualche idea? –

+0

Calcola in modo programmatico la sua posizione sulla vista, quindi aggiungi UIButton con stile personalizzato e cancella lo sfondo. Mettilo su "o0". – Nekto

+0

per favore dammi codice come posso calcolare la posizione sulla vista? Qualche idea? –

5

provare questo

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]; 

Se il testo potrebbe essere superiore a 1 riga, aggiungere label.numberOfLines = 0; prima di chiamare sizeToFit;

+0

Grazie amico, la tagliaToFit appena risolto il mio problema: stavo ottenendo l'etichetta nella giusta posizione solo alla seconda volta che premevo il pulsante –

+0

Grande, grazie mille! –

3

È il 2016 e il sizeWithFont è finito da tempo.

Ora, e in 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

Grazie per aver mostrato come farlo, ma la parte 'text as NSString' mi interessa. c'è un modo più "nativo" per farlo? – Gattster

+0

Non che io ne sia a conoscenza .. Nel futuro speriamo che NSString sarà completamente colato da String. –

Problemi correlati