Estoy tratando de utilizar el diseño automático restricciones para cambiar automáticamente el tamaño de un par del mismo tamaño de los botones en una vista para dar el siguiente efecto:
Antes de cambiar el tamaño
Efecto deseado después de cambiar el tamaño
Como usted puede decir, quiero que los botones son del mismo tamaño y también quiero que el espaciado entre cada botón a ser una constante de 20 puntos. Parece bastante simple a primera vista, así que me puse a las siguientes limitaciones:
- Botones: el espacio de la izquierda prójimo = 20 (incluido el de más a la izquierda y a la derecha-la mayoría de los botones)
- Botones: espacio de vecino de la derecha = 20 (incluido el de más a la izquierda y a la derecha-la mayoría de los botones)
- Botones: el mismo ancho de
Lo que en realidad sucede después de cambiar el tamaño
Cuando en la vista previa o cuando lo pruebe ejecutar la aplicación en mi iPhone/simulador, el botón cambia de tamaño y no siga el mismo ancho de la restricción de la que me había propuesto. De hecho, la vista que contiene los puntos de vista también se redimensiona para adaptarse a los nuevos tamaños de los botones. Alguien sabe cómo solucionar este problema puramente en el interface builder?
- llegó a la adición de «20» píxeles de espacio como se indica más arriba? u puede compartir algo con respecto a la misma?
- Sí, lo hice por tener que rehacer todo. Por desgracia no he podido averiguar lo que me hizo incorrectamente, por lo tanto yo no publicar una respuesta. Los 3 puntos de arriba es suficiente para satisfacer las restricciones.
- Desde la mirada de ella probablemente había contenido de la resistencia a la compresión de prioridad no menor que la igualdad de los anchos de las limitaciones de la prioridad de
- Yo no lo creo. Recuerdo que yo no se meten con cualquier contenido abrazo de compresión de prioridad cuando me dieron el error de la última vez y cuando he conseguido lo hizo.
- Yo tenía el mismo problema. sugerencia: fue muy reveladora para poner un borde en los botones. el tamaño real de los botones eran más grandes de lo que pensaba. func makeButtonsPretty() { for elemento en los botones { elemento.la capa.borderWidth = 3 } }
Configuración:
– anchos iguales de todos los botones
– espaciado horizontal entre todos los botones
– líder a superview para el primer botón y trailing a superview para el último botón
debe hacer el trabajo. A menos que usted está teniendo problemas con el superview (por ejemplo, ScrollView falta de restricciones)
En la interfaz del generador de establecer el espaciado de las limitaciones entre los botones como se describió anteriormente. A continuación, puede comandos, seleccione todos y especificar la «Igualdad de Ancho» restricción a aplicar a los objetos seleccionados.
Finalmente me he olvido de cómo resolver este problema. He de prueba funciona como un encanto.
1:5
-24
(6 separación entre los elementos y los padres borde da120
, este se multiplica por el valor del multiplicador1:5
da24
)Que es! La imagen a continuación muestra cómo se trabaja en el interface builder:
Conjunto simulado tamaño de «libre» y prueba de diferentes anchos (I sett esta a
330
).Este problema parece ser debido a mal
content hugging priority
ycontent compression Resistance priority
. Por lo que debe establecer como bajo contenido de abrazos y de alta resistencia a la compresión (todos deben tener el mismo valor).Porque el contenido abrazar es la propiedad que se resisten a una vista para crecer y contenido de la Resistencia a la compresión prioridad es resistir miras a reducir. Para obtener más información acerca de estos se pueden encontrar Pregunta.
content hugging priority
en el enlace a la otra pregunta que has publicado, parece que mi problema está relacionado con los abrazos. También traté de configuracióncontent hugging priority
a 1 para los botones y los puntos de vista, pero sigue siendo el mismo.