objective example create code ios autolayout uistackview

ios - example - uistackview swift 3



Anular el espacio para un UIStackView (1)

Con frecuencia encuentro que un UIStackView es perfecto para un diseño particular, excepto que necesito un espaciado variable entre las subvistas ordenadas. UIStackView usa su propiedad de spacing para organizar las vistas a lo largo de su eje, pero ¿hay alguna manera de anularlas? Por ejemplo, me encantaría poder agregar una única restricción manual utilizando el formato visual para definir las brechas requeridas y, de alguna manera, des-priorizar las de la vista de la pila.

Podría renunciar a UIStackView por supuesto, pero la habilidad de la pila para devolver espacio entre las subvistas ocultas es bastante dolorosa para replicar manualmente (por ejemplo, agregar y eliminar restricciones basadas en las vistas ocultas). También intenté envolver las subvistas individuales en sus propias vistas de la pila para poder usar el layoutMargins la pila para agregar un margen superior. Pero esto requiere gestionar el propio estado oculto de la pila contenedora además de la subvista que contiene (sorprendentemente, para mí, una UIStackView cuyas UIStackView están todas ocultas no se oculta automáticamente, por lo que no devuelve el espaciado y los márgenes a su propia supervista).


Desde iOS 11 es posible usar:

stackView.setCustomSpacing(spacing: CGFloat, after: UIView)