ios - direcciones - graffitis en buenos aires
¿Cuál es la diferencia entre el tamaño intrínseco y las restricciones de ancho/alto del sistema? (4)
Cada vista que contiene contenido puede calcular el tamaño de su contenido intrínseco. El tamaño del contenido intrínseco se calcula mediante un método en cada instancia de UIView. Este método devuelve una instancia de CGSize
Comenzando a moverse desde el diseño de muelles y estructuras al diseño automático y tener algunas preguntas con respecto a la configuración de "Tamaño intrínseco".
Si establece el "Tamaño intrínseco" de alguna vista en "Marcador de posición" y coloca algunos valores de ancho y alto, la vista no se escalará y se mantendrá del tamaño fijo. Pero si configuramos "Tamaño intrínseco" a "Predeterminado (definido por el sistema)", el sistema decidirá y escalará la vista si es necesario durante el tiempo de ejecución.
Sin embargo, podríamos establecer explícitamente las restricciones del sistema de ancho y alto en la vista usando Ctrl + Arrastrar. En tal caso, habría restricciones de ancho y altura del sistema Y valores de marcador de posición const. Estoy revisando el código existente y tratando de entender si hay un error y las restricciones de ancho y altura redundantes del sistema deben eliminarse O hay alguna otra lógica oculta. Sin embargo, Xcode no muestra ninguna advertencia, etc. en la consola durante el tiempo de ejecución. Aquí hay una pantalla de impresión del proyecto de demostración:
Cuando el tamaño intrínseco se establece en Marcador de posición, containerView calcula su propia altura de acuerdo con su subView (containeeView)
containerView crece o se encoge de acuerdo con lo que hay dentro de él.
-Ajuste el ancho y la posición para la vista, no la altura -set view.intrinsicSize = marcador de posición -Ponga una etiqueta dentro de la vista -snap la etiqueta en todos los bordes de la vista -no establezca la altura para la etiqueta (o establezca la altura con> = operador. No = operador) -set etiqueta como líneas = 0, lineBreak = WordWrap
Según el tamaño del contenido, la etiqueta aumentará o disminuirá en altura. la vista aumentará o reducirá la altura según la altura de la etiqueta.
Si está familiarizado con wrap_content
desde Android, intrinsicContentSize
es el mismo que wrap_content.
Cuando configura el tamaño intrínseco en "Marcador de posición", le dice al sistema de diseño de Xcode que su vista tendrá un tamaño que depende de su contenido (como una etiqueta puede depender de su contenido de texto). El sistema solo conoce y mantiene sus propios tipos de vistas con tamaño intrínseco. Si desea tener una experiencia similar con una vista propia, considere la vista como si tuviera un tamaño intrínseco. Luego, configura sus restricciones como si la vista creciera o se redujera según su contenido. Finalmente, implementa el método intrinsicContentSize
para calcular y devolver el tamaño correcto del contenido. Si el contenido cambia y se debe realizar un nuevo cálculo, llame a invalidateIntrinsicContentSize
en su vista. Dependiendo de cómo haya configurado sus restricciones, su vista aumentará y / o reducirá, o será estática (como puede establecer restricciones de ancho y altura en una etiqueta, y permanece estática).