Não consigo definir o título do UIButton usando IB como centro. Meu título é multi-linha.
Está dando assim
Mas eu quero assim
Eu dei espaço nisso, mas não quero fazer isso. Como ele não está alinhado exatamente em alguns casos, e eu sei que existe uma propriedade do UILabel para definir o alinhamento, mas não quero escrever um código para isso .. só quero definir tudo do IB.
obrigado
ios
objective-c
uibutton
interface-builder
Inder Kumar Rathore
fonte
fonte
self.yourButton.titleLabel.textAlignment = UITextAlignmentCenter;
Respostas:
Isso fará exatamente o que você estava esperando:
Objetivo-C:
Para iOS 6 ou superior, é
como explicado na resposta de tyler53
Rápido:
Swift 4.xe acima
fonte
myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
Use a linha:
Isso deve centralizar o conteúdo (horizontalmente).
E se você deseja definir o texto dentro da etiqueta também para o centro, use:
[labelOne setTextAlignment:UITextAlignmentCenter];
Se você deseja usar o IB, eu tenho um pequeno exemplo aqui, que está vinculado no XCode 4, mas deve fornecer detalhes suficientes (lembre-se, no topo dessa tela de propriedades, ele mostra a guia de propriedades. Você pode encontrar as mesmas guias no XCode 3.x):
fonte
Solução1
Você pode definir o caminho da chave no storyboard
Defina o texto para o título da sua multilinha, por exemplo,
hello
⌥ +↵multiline
Você precisa pressionar ⌥ + ↵para mover o texto para a próxima linha.
Em seguida, adicione o caminho da chave
titleLabel.textAlignment
asNumber
and value1
,1
significaNSTextAlignmentCenter
titleLabel.numberOfLines
asNumber
and value0
,0
significa qualquer número de linhasIsso não será refletido no IB / Xcode, mas estará no centro no tempo de execução (dispositivo / simulador)
Se você quiser ver as alterações no Xcode, faça o seguinte: (lembre-se de que você pode pular estas etapas)
Subclasse o UIButton para tornar o botão designável:
Atribua esta subclasse designável aos botões que você está modificando:
Solução2
Se você quiser escrever o código, faça o longo processo
1.Criar
IBOutlet
para o botão2.Write code in viewDidLoad
Solução3
Na versão mais recente do xcode (a minha é xcode 6.1), temos um atributo atribuído à propriedade
Selecione
Attributed
, selecione o texto e pressione a opção central abaixoPS O texto não estava chegando multilinha para que eu tenho que definir o
btn.titleLabel.numberOfLines = 0
fonte
Line Breaking = Clip
, ele irá transformar o texto para várias linhasbtn.titleLabel.textAlignment
, funciona muito bem.Para o UIButton, você deve usar: -
fonte
Para ios 8 e Swift
btn.titleLabel.textAlignment = NSTextAlignment.Center
ou
btn.titleLabel.textAlignment = .Center
fonte
Para aqueles que agora usam o iOS 6 ou superior, o UITextAlignmentCenter foi preterido. Agora é NSTextAlignmentCenter
EXEMPLO:
mylabel.textAlignment = NSTextAlignmentCenter;
Funciona perfeitamente.fonte
Para swift 4, xcode 9
fonte
Supondo que btn se refira a um UIButton, para alterar uma legenda de várias linhas para centralizar horizontalmente, você pode usar a seguinte instrução no iOS 6 ou posterior:
fonte
UITextAlignmentCenter
foi descontinuado no iOS6Em vez disso, você pode usar este código:
btn.titleLabel.textAlignment=NSTextAlinmentCenter;
fonte
Para Swift 3.0
fonte
Para o Swift 4:
fonte
Na verdade, você pode fazer isso no construtor de interfaces.
Você deve definir o Título como "Atribuído" e escolher o alinhamento central.
fonte
Tente assim:
fonte
Você pode fazer isso no storyboard. Selecione seu botão. Defina quebra de linha 'quebra automática de linha', defina seu título 'comum' como 'atribuído'. Selecione 'Alinhar ao centro'. Esta parte é importante => Clique no botão ... (Mais). E selecione o modo de quebra de linha para 'Quebra de caracteres'.
fonte
O UIButton não suporta setTextAlignment. Então, você precisa ir com setContentHorizontalAlignment para o alinhamento do texto do botão
Para sua referência
fonte