Onde atualizar as restrições do Autolayout quando o tamanho muda?

Tenho váriosUIViews dispostos ao longo do fundo de um recipienteUIView. Quero que essas visualizações tenham sempre a mesma largura e sempre se estendam para preencher coletivamente a largura da visualização que contém (como os botões do teclado emoji na parte inferior). A maneira como estou abordando isso é definir larguras iguais a uma das vistas e, em seguida, basta atualizar a restrição de largura dessa vista parasuperviewWidth / numberOfViews o que fará com que todas as outras visualizações sejam atualizadas para o mesmo valor.

Eu estou querendo saber onde o código para alterar a constante de restrição precisa ir. Ele precisa ser definido antes que o teclado apareça na tela pela primeira vez e atualize ao girar o dispositivo.

Minha primeira tentativa de solução foi colocá-la emupdateViewConstraints e calcule a largura viacontainerView.frame.size.width. Mas esse método é chamado duas vezes após o carregamento, na primeira vez que calcula os valores corretamente, mas na segunda vez, por algum motivo, ocontainerViewa largura é de 0,0. Outra questão é que, ao girar, ocontainerViewA largura não é o valor que será após a rotação, é o valor atual antes da rotação. Mas não quero esperar até que a rotação seja concluída para atualizar a restrição, porque os botões terão o tamanho original e serão alterados, o que será dissonante para o usuário.

Minha pergunta é: onde é o local mais apropriado para colocar esse código? Existe uma maneira melhor de calcular qual será a largura? Posso garantir que sempre será exatamente a mesma largura que a largura da tela. E eu estou usando Classes de tamanho no Xcode 6, entãowillRotateToInterfaceOrientation e métodos semelhantes foram descontinuados.

questionAnswers(2)

yourAnswerToTheQuestion