Qual é a melhor maneira de definir as coordenadas x, y de UILabel mas deixá-lo auto largura / altura no iPhone?

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

  •  06-09-2019
  •  | 
  •  

Pergunta

Eu sei exatamente onde eu quero posicionar meu UILabel em um UIView, mas eu não necessariamente sabe o que altura / largura eu quero que ele tem em tempo de compilação, assim, definir uma largura / altura em initWithFrame é inútil. Eu quero ser capaz de apenas o init sua x, ponto y, e então usar algo como [myLabel SizeToFit] para que ele possa automagicamente definir a largura / altura com base no meu modo de pausa e de conteúdo.

A solução que eu estou procurando é como definir o ponto de origem do UILabel ao definir a sua largura / altura de um número dinâmico com base no conjunto de texto para o rótulo.

Nenhuma solução correta

Outras dicas

Tamanho da etiqueta em primeiro lugar, em seguida, definir a sua origem ou centro:

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

ou

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

Se você já tem o quadro com tamanho dinâmico, mas deseja alterar a origem:

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

Se você precisa calcular o tamanho:

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

Claro, você pode mudar o FLT_MAX para restringir a uma largura específica ou heigh.

EDIT: Eu não sabia que você queria calcular programaticamente o tamanho. Adicionado uma explicação melhor acima.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top