Apple Interface Builder: Agregar subvisión a UIIMageView
-
19-09-2019 - |
Pregunta
yo creé UIImageView
con la ayuda de la interfaz Bulder. Ahora quiero colocar la etiqueta dentro de ella (como su subvisión). En código puedo escribir algo como: [myUIImageView addSubview:myUILabel];
¿Pero puedo hacerlo con la ayuda de IB? Encontré la solución para UIView
, pero no puedo encontrar algo similar para UIImageView
.
Solución
¡No puede agregar una subvisión a UIIMageView en Interface Builder por razones que solo conocen Apple! Tiene razón al decir que puede addsubView mediante programación, pero luego, la sobrecarga de configurar las máscaras de autoresización y las ubicaciones de las subvistas debe manejarse en el código, lo cual es engorroso.
Entonces hay una solución fácil. En lugar de arrastrar una instancia de UIIMageView en la NIB, simplemente arrastre una vista UIView y cambie su clase a UIIMAGEVIEW desde UIView (opción CMD+4 del Inspector). La única diferencia que encuentra en la instancia NIB para ImageView predeterminada y su nueva instancia de subclase UIIMageView es: no puede configurar la imagen en su nueva imagen de ImageView de NIB (opción CMD+1). Entonces, en el -viewDidLoad
Método de su ViewController apropiado, configure la imagen en esta salida de UIIMageView.
Al hacerlo, puede agregar subvistas a sus instancias "ahora UiImageView" en Interface Builder, lo cual es mucho fácil.
Espero que esto ayude . . .
Otros consejos
Me gustaría agregar respuesta.
Mientras apesta no puede agregar subvisión a UIImageView
, puedes obtener el mismo efecto incorporando UIView
con fondo transparente (color claro).
Entonces pon el UIImageview
Antes de eso.
Entonces el UIView
tiene las subvisiones y el UIImageview
es el fondo del UIView
.
Creo que esa es la intención de Apple.
Aquí hay una captura de pantalla:
Aquí está el resultado:
No olvides establecer fondo como color claro
Ahora, si alguien realmente pudiera señalarme un tutorial cómo hacer esto, será genial. Pasé horas haciéndolo por la forma revisada. La respuesta verificada es una buena respuesta pero muy poco intuitiva porque no puede ver su imagen de fondo claramente mientras trabaja. Creo que la mía es la forma correcta de hacerlo.
En el último Xcode (4.5) hay una opción para arrastrar y soltar los controles requeridos al padre.
Es bastante fácil. Pantalla de pantalla adjunta para lo mismo. Arrastré la etiqueta/textfield y el botón a uiImageView
Use este código:
UIImage *image = [UIImage imageNamed:@"background.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[self.view insertSubview:imageView atIndex:0];
(reemplazar fondo.png con imagen) (reemplazar atindex: 0 Con cualquier lugar en la raíz .dex, desea insertar la imagen y su apagado.