ios - horizontal - uistackview programmatically




Preenchimento de distribuição do UIStackView igualmente (2)

Como confirmação, este é o comportamento atual:

E é isso que você está pedindo é:

Para alcançá-lo, você pode seguir este truque simples:

PS: Suponho que você adicionou as restrições apropriadas necessárias para a sua exibição de pilha.

Se a visualização da pilha não tiver uma restrição de "altura" , adicione uma:

Agora, adicione-o como um IBOutlet ao ViewController atribuído; No meu exemplo, estou chamando de stackHeight :

@IBOutlet weak var stackHeight: NSLayoutConstraint!

No caso em que você deseja ocultar a visualização (no meu exemplo, estou ocultando o botão laranja com base no IBAction atribuído a si mesmo, ao tocar nela, deve estar oculto), você precisa obter a altura da visualização que deseja. deseja ocultar e subtrair de stackHeight.constant :

    @IBAction func orangeTapped(_ sender: AnyObject) {
        orange.isHidden = true

        // here we go:
        stackHeight.constant = stackHeight.constant - orange.frame.size.height
    }

Então, eu tenho um UIStackView que contém quatro (4) UIView s. Se eu remover um (1) desses UIView s, os outros três (3) preencherão todo o espaço no UIStackView .

MINHA PERGUNTA:

Como posso adicionar uma altura máxima em um UIView para que ele não preencha todo o espaço do UIStackView mesmo que a distribuição seja preenchida igualmente? Li algo sobre adicionar restrições, mas não consigo fazê-lo funcionar. Estou usando rápido pelo caminho.

Obrigado.


Remova a restrição na borda inferior da visualização da pilha. Em seguida, ele será redimensionado para caber apenas nos controles visíveis.





uistackview