ios - tutorial - the swift programming language pdf




Establecer contentMode de UIImageView (3)

En obj-c

imageView.contentMode = UIViewContentModeScaleAspectFill;

establecería el modo de contenido.

Por que

imageView.contentMode = UIViewContentModeScaleAspectFill

¿No trabajas en Swift?


Algo confuso, Swift elimina el prefijo para los valores de enumeración de ObjC:

imageView.contentMode = .scaleAspectFill

Esto se debe a que Swift ya sabe qué tipo de enumeración se está utilizando. Alternativamente, puede especificar la enumeración también:

imageView.contentMode = UIViewContentMode.scaleAspectFill

Nota: En las versiones de Swift anteriores a la versión 3, será necesario poner en mayúsculas "scaleAspectFill".


En Swift Language podemos configurar imageView en textField como se indica a continuación.

let RightImageView = UIImageView()
RightImageView.image = image

let RightView = UIView()
RightView.addSubview(RightImageView)
RightView.frame = CGRectMake(0, 0, 30,30)

Dale color a view & imageView para que puedas verificar la posición de viewView agregada en textField

RightView.backgroundColor = UIColor.redColor()
RightImageView.backgroundColor = UIColor.blueColor()

RightImageView.contentMode = UIViewContentMode.ScaleAspectFill

RightImageView.frame = CGRectMake(0, 0,30,30)

textFieldForCountry.rightView = RightView

tldr;

Ver el código de respuesta para Swift 3 en la parte inferior.

Nota - Por favor comente si se necesita más información.

Verifique la respuesta más larga a continuación, que incluye cómo usar la solución para configurar todas las demás propiedades dentro de su Storyboard o archivo Xib / Nib.

No hay nada de malo en las otras respuestas, pero quiero compartir cómo se pueden realizar los valores de configuración de los objetos en Interface Builder. Sé que el OP está solicitando un código, este ejemplo solo se comparte para completar. Por supuesto, si uno deseaba animar los cambios de propiedad o necesitara las versiones del código, las otras respuestas continúan aplicándose.

Dentro de Interface Builder

  1. Seleccione el ImageView (o cualquier otro control que tenga un imageView incrustado)
  2. Verifique el tipo de base del atributo que desea establecer (en el caso de contentMode este es UIViewContentMode) * vea NB para saber cómo ...
  3. Tenga en cuenta el tipo de valores válidos que se pueden asignar al tipo base (en este caso, los valores de contentMode corresponden a un número)
  4. Vaya al inspector de atributos y vea los atributos de tiempo de ejecución definidos por el usuario (ver imagen)
  5. Agregue un atributo definido por el usuario de tipo Número y el nombre de la propiedad que desea establecer (en este caso sería contentMode )

NB: una forma fácil de explorar los tipos subyacentes de propiedades es hacer clic en Cmd + en la propiedad en su editor de código fuente, luego hacer clic en Cmd + en el tipo de esa propiedad.

Aquí hay un ejemplo simple donde establezco algunas propiedades para un UIButton, que incluye un UIImageView como una de sus subvistas. El ejemplo muestra cómo se pueden establecer propiedades en el objeto superior (UIButton) y el subobjeto (UIImageView).

Si tiene un imageView seleccionado, simplemente configure el atributo de tiempo de ejecución definido por el usuario en contentMode de tipo Number y el valor que desee. Este es un buen método porque funcionará tanto para Objc como para Swift.

Lo que es genial es que puede usar el mismo método para capturar muchos otros valores de propiedad estática para cualquier cosa que aparezca en Interface Builder.

Valores documentados para la enumeración UIViewContentMode

BTW - Swift 3 cambia los valores de enumeración para comenzar con minúsculas, por lo que lo siguiente funcionaría en Swift 3:

imageView.contentMode = .scaleAspectFill






swift