Qual é a melhor maneira de definir as coordenadas x, y de UILabel mas deixá-lo auto largura / altura no iPhone?
-
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.