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?¿Cuál es la propiedad "Mode" en Interface Builder que ofrece "Escala para rellenar", "Ajuste de aspecto", etc.?
Respuesta
View Programming Guide entra en detalles sobre lo que pregunta. Si se desplaza hacia abajo a la sección llamada "Content Modes", encontrará lo que está buscando.
Básicamente según Apple:
"Cada punto de vista tiene un modo de contenido que controla la forma en la vista recicla su contenido en respuesta a los cambios en la geometría de la vista [...] el valor de la propiedad determina contentMode si el mapa de bits debe escalarse para ajustarse a los nuevos límites o simplemente estar anclado a una esquina o al borde de la vista ".
http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/
debería darle las ideas básicas muy bien.
El content mode property 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.
Vamos a usar dos vistas de imágenes para ver cómo los diferentes modos de trabajo.
Escala Completa a
Las alturas de imagen y anchuras se estiran para que coincida con el tamaño de la UIImageView
.
Aspecto Fit
El lado más largo (ya sea la altura o anchura) 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. (Fijo el fondo UIImageView
a azul por lo que su tamaño es clara.)
Aspecto Rellena
El lado (ya sea la altura o anchura) más corto 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.
Redraw
Redraw es sólo para las vistas personalizadas que necesitan para 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 Escalar para llenar, pero está haciendo más trabajo detrás de escena.
Sobre Redraw, la documentation dice:
modos contenido son buenos para reciclar el contenido de la vista, pero también se puede establecer el modo de contenido al valor
UIViewContentModeRedraw
cuando se desea específicamente sus vistas personalizadas para redibujar ellos mismos durante las operaciones de escalamiento y cambio de tamaño. Configurar el modo de contenido de su vista a este valor obliga al sistema a llamar al métododrawRect:
de 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.
Center
La imagen se centra en la vista, pero la longitud y anchura de la imagen no se estiran.
Top
El borde superior de la imagen se centra horizontalmente en la parte superior de la vista, y la longitud y anchura de la imagen no se estiran.
Bottom
El borde inferior de la imagen se centra horizontalmente en la parte inferior de la vista, y la longitud y anchura de la imagen no se estiran.
izquierda
El borde izquierdo de la imagen está centrada verticalmente en la izquierda de la vista, y la longitud y anchura de la imagen no se estiran.
derecho
El borde derecho de la imagen se centra verticalmente a la derecha de la vista, y la longitud y anchura 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.
Arriba a la 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) es del mismo tamaño que la vista (en nuestro caso el
UIImageView
), a continuación, cambiar el modo de contenido no hará ninguna diferencia notable.Consulte this y pregunta para una discusión sobre los modos de contenido para las vistas que no sean
UIImageView
.En Swift, al set para establecer el modo de contenido de programación de hacer 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
Gran explicación detallada. Todos los ejemplos que veo aquí son sobre 'UIImageView' pero Apple expone la propiedad en' UIView'; eso es lo que causó la confusión. – Krumelur
@Krumelur, Después de haber terminado mi respuesta y volver a leer su pregunta y comentarios, tuve la [misma pregunta] (http://stackoverflow.com/questions/32152138/setting-content-mode-for-something-besides- uiimageview-in-ios). Hay algunas buenas explicaciones [aquí] (http://stackoverflow.com/questions/12827710/what-type-of-contents-uiviewcontentmode-mode-refers-to). – Suragch
Explicación fantástica. Ver todos los ejemplos visuales es muy útil. – Stonetip
- 1. Usando Interface Builder para UITableViews
- 2. Interface Builder UIDatePicker
- 3. IPhone Interface Builder: Z-Index, Z-orden de un botón, imagen, elemento ui, etc.
- 4. advertencias Interface Builder
- 5. Imágenes en Interface Builder al usar MonoTouch
- 6. iPhone - ¿Crear objetos personalizados para Interface Builder?
- 7. Características ocultas de Interface Builder?
- 8. Cómo agregar MKUserTrackingBarButtonItem en Interface Builder
- 9. ¿Cuál es el atajo de teclado de Interface Builder para rotar una ventana?
- 10. ¿Existe una guía fácil de entender (nueva para Cocoa, Xcode, etc.) para Interface Builder que habla de objetos proxy?
- 11. iPhone Interface Builder y Delegados
- 12. Android Designer como "Interface Builder"?
- 13. UIView personalizado creado con Interface Builder accesible/posicionable a través de Interface Builder
- 14. ¿Cuál es el mejor tutorial para el desarrollo de iPhone, sin Interface Builder?
- 15. Usar Singleton In Interface Builder?
- 16. Fuentes que no se muestran en Interface Builder
- 17. Vistas de grupo en Interface Builder
- 18. ¿Es posible diseñar subclases NSCell en Interface Builder?
- 19. NSTextField con NSNumberFormatter automático en Interface Builder
- 20. Interface Builder: cómo seleccionar elementos anidados?
- 21. Problemas al utilizar UITapGestureRecognizers en Interface Builder
- 22. ¿No está usando Interface Builder, comprarme algo?
- 23. ZBarReaderView clase desconocida en Interface Builder archivo
- 24. ¿Colores extraños en XCode Interface Builder?
- 25. hereda el archivo xib en Interface Builder
- 26. Actualizar clase UIView en Interface Builder
- 27. ¿Arrastra la vista personalizada en la ventana en Interface Builder?
- 28. se pueden agrupar elementos en Interface Builder
- 29. Convertir NIB en XIB sin Interface Builder
- 30. Configurando la imagen de un UIImageView en Interface Builder
Por lo tanto, sólo se aplica a UIImageViews? ¿Por qué está entonces disponible para todas las UIViews? – Krumelur
en realidad se deriva de UIView. Verifique la documentación oficial. http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/instp/UIView/contentMode – Bourne
Sí, leí todo eso y sé que deriva de UIView pero nunca he visto ningún efecto al cambiar el modo. De ahí mi pregunta: ¿veré un efecto cuando NO trate con UIImageView? – Krumelur