Não consigo encontrar uma maneira de criar uma restrição 'quadrada', significando 'largura igual à altura' no Interface Builder. Acho que é possível adicionar essa restrição de forma programática. Posso fazer algo no IB? Talvez eu simplesmente não veja? Parece trivial, mas não consigo encontrar.
ios
interface-builder
autolayout
nslayoutconstraint
DemoniacDeath
fonte
fonte
Respostas:
Atualize o Xcode 5.1b5
Ctrl + clique e arraste de uma vista e solte enquanto o ponteiro está sobre a vista. Selecione "Proporção". Isso criará uma restrição em que o primeiro e o segundo itens são a visualização.
Antes do Xcode 5.1
Você não pode porque o editor de largura / altura não possui os campos para se relacionar com outra propriedade ou definir a proporção:
Portanto, você não pode expressar o seguinte código no Interface Builder:
fonte
Adicione uma nova restrição, proporção de 1: 1 no elemento da IU como na imagem.
fonte
Para começar, controle e arraste diagonalmente do botão para ele mesmo. Um menu contextual aparecerá, onde você pode adicionar restrições de largura e altura. Shift + clique em cada um; uma marca de verificação aparecerá indicando que você adicionou a restrição. (Se você acidentalmente dispensar a caixa de diálogo antes de adicionar ambos, tudo bem, basta repetir a etapa de arrastar e definir a outra):
Quando adicionadas pela primeira vez, essas restrições assumem a largura e a altura atuais do botão, então você precisará ajustar cada restrição para dar a ela um valor mais apropriado. Teremos que fazer isso um de cada vez, embora nossa imagem seja quadrada, então certifique-se de usar o mesmo valor constante em ambas as restrições para redimensionar o botão proporcionalmente. Clique duas vezes na restrição e insira um valor menor em seu campo constante:
fonte