Agregue mediante programación subvistas a UIStackView

Estoy tratando de implementar una celda de vista de tabla que muestra una serie de iconos que representan las comodidades del hogar (por ejemplo, toallas, wifi, lavandería, etc.). La celda podría mostrar una gran cantidad de servicios (dependiendo de cuántos tenga el hogar), por lo que mostraré un máximo de tres e indicaré que puede ver más haciendo clic en la celda si hay más de tres. Así es como debería verse (desde la aplicación de Airbnb):

Estoy tratando de hacer esto agregando dinámicamente UIImageViews a UIStackView en la celda de la vista de tabla. Estoy usando un UIStackView con la alineación establecida en "Relleno" y la distribución establecida en "Espaciado igual", la idea es que la vista de pila espaciará uniformemente los íconos sin importar cuántos agregue.

Configuré la vista de pila en Storyboard. Tiene restricciones en la parte superior, inferior, izquierda y derecha.márgenes de su vista de contenido, de modo que llene la celda de vista de tabla, hasta los márgenes.

Aquí está el código que estoy usando para intentar agregar dinámicamente UIImageViews a la celda. Notaamenities es una matriz de cadenas igual a los nombres de los iconos en la carpeta de activos de mi imagen:

        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++
        }

Los fondos de las vistas de imagen son azules y el color de fondo de la vista de pila es verde. Aquí está el resultado, para un caso donde la casa tiene tres comodidades:

Parece que todas las vistas de imágenes se están presionando una encima de la otra a la izquierda de la pantalla. También llenan la vista de contenido de la celda de arriba a abajo, aunque la vista de pila está anclada a los márgenes de la vista de contenido. No hay verde a la vista, por lo que parece que la vista de la pila no permanece anclada en los márgenes de la celda.

¿Alguna idea de lo que está mal aquí?

Respuestas a la pregunta(1)

Su respuesta a la pregunta