/ / AutoLayout no funciona para los modelos Plus: ios, swift, uiscrollview, autolayout, uistackview

AutoLayout no funciona para los modelos Plus: ios, swift, uiscrollview, autolayout, uistackview

Actualmente estoy desarrollando una aplicación educativa, laEl primer controlador de vista muestra las categorías principales y el segundo (casi como Pinterest) muestra las varias subcategorías. El diseño automático que utilicé funciona perfectamente para el iPhone 6, 7, 8 y X, sin embargo, los modelos Plus están distorsionados un poco.

Así es como se ve en los modelos 6, 7, 8 y X.

enter image description here

enter image description here

Sin embargo, cuando lo ejecuto en los modelos Plus, se parece a lo siguiente:

enter image description here

enter image description here

Tengo el siguiente código de diseño automático

Este diseño automático corresponde al primer controlador de vista. Estoy usando una vista de pila, por lo que la altura de ScrollView se puede ajustar según el contenido de la vista de pila. enter image description here

Este diseño automático corresponde a laControlador de vista de subcategorías similar a Pinterest. Estoy usando el código empleado por Ryan Wenderlich; sin embargo, en lugar de usar imágenes, en ambos controladores de vista estoy usando botones para que el usuario pueda ir a la sección correspondiente. Los agrego programáticamente, pero siempre estoy conectado al prototipo de elemento de celda.

¿Cómo puedo hacer que el diseño automático funcione para los modelos Plus? enter image description here

Respuestas

1 para la respuesta № 1

Encontré tu problema:

Cada botón tiene un título de Button y deberías eliminar el título por defecto. ese título presionó la imagen del botón y, debido al color blanco del título, no lo viste.

También puedes controlar la imagen de UIButtons por Control > Alignment section Mira la captura de pantalla que adjunto.

enter image description here

Por cierto, te recomiendo que uses UIImageView + UIButton sobre ella en lugar de usar UIButton"s contenido de la imagen.

Editar

CollectionView Es un desastre total! Se comerá mucha RAM. Tienes muchas células una sobre la otra.

enter image description here

por cierto, parece que su segundo problema de control de vista relacionado con el stackviews Eso no es restricción establecida.

    cell.addSubview(stackView)

NSLayoutConstraint(item: stackView, attribute: .centerX, relatedBy: .equal, toItem: cell, attribute: .centerX, multiplier: 1, constant: 0).isActive = true
NSLayoutConstraint(item: stackView, attribute: .centerY, relatedBy: .equal, toItem: cell, attribute: .centerY, multiplier: 1, constant: 0).isActive = true

Acabo de centrar uno de los stackviewS y yo descubrimos que está relacionado con la restricción.

mira esto como para la configuración Constraint programáticamente Swift | Añadiendo restricciones programáticamente