Qual è il modo migliore per impostare le coordinate x, y di UILabel ma lasciarlo auto larghezza / altezza su iPhone?

StackOverflow https://stackoverflow.com/questions/929014

  •  06-09-2019
  •  | 
  •  

Domanda

So esattamente dove voglio posizionare la mia UILabel in un UIView, ma io non so che cosa necessariamente altezza / larghezza voglio che abbia al momento della compilazione, quindi l'impostazione di larghezza / altezza in initWithFrame è inutile. Voglio essere in grado di appena init suo punto x, y, e quindi usare qualcosa come [myLabel sizeToFit] in modo che possa automagicamente impostare la larghezza / altezza in base alla mia modalità di pausa e di contenuti.

La soluzione che sto cercando è come impostare il punto di origine del UILabel durante l'impostazione è la larghezza / altezza per un numero dinamica basata sul testo riportato all'etichetta.

Nessuna soluzione corretta

Altri suggerimenti

Taglia l'etichetta prima, quindi impostare la sua origine o il centro:

[myLabel sizeToFit];
CGRect frame = myLabel.frame;
frame.origin = CGPointMake(x, y);
myLabel.frame = frame;

o

[myLabel sizeToFit];
myLabel.center = CGPointMake(x, y);

Se hai già il telaio con la dimensione dinamica, ma desidera modificare l'origine:

CGRect myFrame = myLabel.frame;
myFrame.origin = aCGPoint;
myLabel.frame = myFrame;

Se è necessario calcolare la dimensione:

CGSize suggestedSize = [myString sizeWithFont:myLabel.font constrainedToSize:CGSizeMake(FLT_MAX, FLT_MAX) lineBreakMode:UILineBreakModeWordWrap];

Naturalmente, è possibile modificare la FLT_MAX per vincolare ad una larghezza o altezza specifica.

EDIT: Non mi rendevo conto che si voleva calcolare programatically le dimensioni. Aggiunta una spiegazione migliore qui sopra.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top