ios - Autolayout: adicionar restrição à superview e não ao Top Layout Guide?




storyboard nslayoutconstraint (5)

A resposta de Dan funciona. Eu só queria afirmar que, se você definir sua exibição no storyBoard em y <20 e configurar restrições através do painel de pinos, ele definirá top para superview:

Eu tenho um UIView no meu UIViewController no storyboard, no qual quero adicionar uma restrição ao espaço que exibe uma distância da borda superior.

Agora, quando eu faço o habitual com a tecla Ctrl e arraste para a tela principal do ViewController, só tenho a opção de configurá-la para o guia de layout superior.

Isso é um problema para mim, porque em um ponto do aplicativo vou mover a visualização principal em torno de 20 a 50px e o que acontece é que a visualização que eu tenho não mudará ... porque não está alinhada à superview.

Como posso fazer isso manualmente no storyboard ou preciso adicioná-lo programaticamente?

Estou usando o xcode 6.


Eu já tinha um monte de restrições e só queria alterá-las em vez de quebrá-las. Acontece que, se você clicar duas vezes na restrição a editar, clique no item que possui a ".Margem", basta desativar o "Relativo à margem" selecionando esse item.


Nenhuma das respostas acima funcionou para mim. Em vez disso, tenho que fazer um hack para definir a parte superior da minha subvisão com a parte superior da superview, em vez do guia de layout Top.

  • Primeiro, defina o centro da subvisão verticalmente com superview.
  • Em seguida, altere as restrições do Centro Y para a subvisão e a superview para Restrição superior .

Você está pronto para ir agora.


Se a altura da vista for definida como 0 por acidente, o Guia de Layout do Espaço Vertical para Topo NÃO aparecerá. O Guia de Layout do Espaço Vertical para a Parte Inferior aparecerá, no entanto, o que deve ter feito sentido para alguém da Apple por volta de 2004.


TL; DR: você pode restringir a margem pressionando a tecla Alt no teclado.

Também se pode acrescentar que, se a vista que você está tentando fixar não for uma subvisão direta da vista que você deseja fixar, a abordagem sugerida não será realmente válida. Digamos que a hierarquia de visualizações tenha essa aparência e você queira fixar a visualização da imagem ( Parallax Image View neste caso) à visualização do controlador de visualização (neste caso).

Para fazer isso, basta Control + Arraste da Parallax Image View para a View . Isso apresenta as opções padrão nas quais você pode ver o Vertical Spacing to Top Layout Guide para fixar a Parallax Image View no guia de layout superior.

O que você deseja é fixá-lo na parte superior (margem) da exibição. Para fazer isso, você precisa mudar para o outro conjunto de restrições pressionando Alt





nslayoutconstraint