Adicionar subviews programaticamente a um UIStackView

Estou tentando implementar uma célula de exibição de tabela que exibe uma série de ícones que representam comodidades domésticas (por exemplo, toalhas, wifi, lavanderia etc.). A célula pode potencialmente exibir um grande número de comodidades (dependendo da quantidade de residências); portanto, exibirei no máximo três e indicarei que você pode ver mais clicando na célula se houver mais de três. Aqui está como deve ser (no aplicativo do Airbnb):

Estou tentando fazer isso adicionando dinamicamente UIImageViews a um UIStackView na célula de exibição de tabela. Estou usando um UIStackView com alinhamento definido como "Preenchimento" e distribuição definida como "Espaçamento igual", com a idéia de que a exibição da pilha espaçará os ícones de maneira uniforme, independentemente de quantos eu adicionar a ela.

Eu configurei a visualização de pilha no Storyboard. Possui restrições nas partes superior, inferior, esquerda e direitamargens de sua visualização de conteúdo, para que ela preencha a célula da visualização de tabela, até as margens.

Aqui está o código que estou usando para tentar adicionar dinamicamente UIImageViews à célula. Notaamenities é uma matriz de cadeias iguais aos nomes dos ícones na minha pasta de ativos de imagem:

        cell.stackView.backgroundColor = UIColor.greenColor()
        var i = 0
        while (i < amenities.count && i < 4) {
            if (i < 3) {
                let imageView = UIImageView(image: UIImage(named: amenities[i]))
                imageView.contentMode = .ScaleAspectFit
                imageView.translatesAutoresizingMaskIntoConstraints = false
                imageView.backgroundColor = UIColor.blueColor()

                // Add size constraints to the image view
                let widthCst = NSLayoutConstraint(item: imageView, attribute: NSLayoutAttribute.Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 50)
                imageView.addConstraint(widthCst)

                // Add image view to stack view
                cell.stackView.addSubview(imageView)
            } else {
                // Add a label to the stack view if there are more than three amenities
                let label = UILabel()
                label.text = "\(amens.count - i) more"
                label.textAlignment = NSTextAlignment.Left
                cell.stackView.addSubview(label)
            }
            i++
        }

Os planos de fundo das visualizações da imagem são azuis e a cor de plano de fundo da visualização da pilha é verde. Aqui está o resultado, para um caso em que a casa possui três comodidades:

Parece que todas as visualizações de imagem estão sendo empurradas uma sobre a outra à esquerda da tela. Eles também preenchem a exibição de conteúdo da célula de cima para baixo, mesmo que a exibição de pilha esteja fixada nas margens da exibição de conteúdo. Não há verde à vista; portanto, parece que a exibição da pilha não permanece fixada nas margens da célula.

Alguma idéia do que há de errado aqui?

questionAnswers(1)

yourAnswerToTheQuestion