what sierra new mac high features developer apple cocoa-touch interface-builder

cocoa touch - sierra - ¿Cuál es la propiedad "Mode" en Interface Builder que ofrece "Escala para rellenar", "Ajuste de aspecto", etc.?



xcode features (3)

La propiedad de modo de contenido de una vista indica cómo se debe diseñar su contenido. En Interface Builder, los diversos modos se pueden seleccionar en el Inspector de atributos.

Usemos dos vistas de imágenes para ver cómo funcionan los diversos modos.

Escalar para llenar

Las alturas y anchuras de la imagen se extienden para coincidir con el tamaño del UIImageView .

Ajuste de aspecto

El lado más largo (de alto o ancho) de la imagen se estira para que coincida con la vista. Esto hace que la imagen sea lo más grande posible mientras se muestra toda la imagen y no se distorsiona la altura o el ancho. ( UIImageView fondo UIImageView en azul para que su tamaño sea claro).

Aspecto relleno

El lado más corto (alto o ancho) de la imagen se estira para que coincida con la vista. Al igual que "Ajuste de aspecto", las proporciones de la imagen no se distorsionan desde su relación de aspecto original.

Redibujar

Redraw es solo para vistas personalizadas que necesitan hacer su propia escala y cambio de tamaño. No estamos utilizando una vista personalizada, por lo que no deberíamos usar Redraw. Tenga en cuenta que aquí UIImageView simplemente nos da el mismo resultado que Scale to Fill, pero está haciendo más trabajo detrás de escena.

Acerca de Redraw, la documentation dice:

Los modos de contenido son buenos para reciclar el contenido de su vista, pero también puede establecer el modo de contenido en el valor UIViewContentModeRedraw cuando desee que sus vistas personalizadas se UIViewContentModeRedraw a dibujar durante las operaciones de escalado y cambio de tamaño. Configurar el modo de contenido de su vista a este valor fuerza al sistema a llamar al método drawRect: su vista en respuesta a los cambios de geometría. En general, debe evitar usar este valor siempre que sea posible, y ciertamente no debe usarlo con las vistas estándar del sistema.

Centrar

La imagen se centra en la vista, pero la longitud y el ancho de la imagen no se alargan.

Parte superior

El borde superior de la imagen se centra horizontalmente en la parte superior de la vista, y la longitud y el ancho de la imagen no se estiran.

Fondo

El borde inferior de la imagen se centra horizontalmente en la parte inferior de la vista, y la longitud y el ancho de la imagen no se estiran.

Izquierda

El borde izquierdo de la imagen se centra verticalmente a la izquierda de la vista, y la longitud y el ancho de la imagen no se estiran.

Derecha

El borde derecho de la imagen se centra verticalmente a la derecha de la vista, y la longitud y el ancho de la imagen no se estiran.

Arriba a la izquierda

La esquina superior izquierda de la imagen se coloca en la esquina superior izquierda de la vista. La longitud y el ancho de la imagen no se alargan.

Parte superior derecha

La esquina superior derecha de la imagen se coloca en la esquina superior derecha de la vista. La longitud y el ancho de la imagen no se alargan.

Abajo a la izquierda

La esquina inferior izquierda de la imagen se coloca en la esquina inferior izquierda de la vista. La longitud y el ancho de la imagen no se alargan.

Abajo a la derecha

La esquina inferior derecha de la imagen se coloca en la esquina inferior derecha de la vista. La longitud y el ancho de la imagen no se alargan.

Notas

  • Si el contenido (en nuestro caso, la imagen) tiene el mismo tamaño que la vista (en nuestro caso, el UIImageView ), entonces cambiar el modo de contenido no hará una diferencia notable.

  • Consulte this y this pregunta para una discusión sobre modos de contenido para vistas distintas de UIImageView .

  • En Swift, para establecer el modo de contenido programáticamente, haga lo siguiente:

    imageView.contentMode = UIViewContentMode.ScaleToFill imageView.contentMode = UIViewContentMode.ScaleAspectFit imageView.contentMode = UIViewContentMode.ScaleAspectFill imageView.contentMode = UIViewContentMode.Redraw imageView.contentMode = UIViewContentMode.Center imageView.contentMode = UIViewContentMode.Top imageView.contentMode = UIViewContentMode.Bottom imageView.contentMode = UIViewContentMode.Left imageView.contentMode = UIViewContentMode.Right imageView.contentMode = UIViewContentMode.TopLeft imageView.contentMode = UIViewContentMode.TopRight imageView.contentMode = UIViewContentMode.BottomLeft imageView.contentMode = UIViewContentMode.BottomRight

Me pregunto de qué se trata el menú desplegable "Modo". Contiene "Escala para rellenar", "Ajuste de aspecto", etc. Nunca tuve que cambiarlo hasta ahora, aún tengo curiosidad por saber para qué se puede usar. ¿Alguien puede explicar?


Ver la guía de programación incluye detalles de lo que está preguntando. Si te desplazas hacia abajo a la sección llamada " Modos de contenido ", encontrarás lo que estás buscando.

Básicamente según Apple:

"Cada vista tiene un modo de contenido que controla cómo la vista recicla su contenido en respuesta a cambios en la geometría de la vista [...] el valor en la propiedad contentMode determina si el mapa de bits debe escalarse para ajustarse a los nuevos límites o simplemente anclado a una esquina o el borde de la vista ".