tutorial for español developer apple ios xcode swift

ios - for - xcode tutorial español



Configure mediante programación la imagen en UIImageView con Xcode 6.1/Swift (9)

Con una sintaxis rápida, esto funcionó para mí:

let leftImageView = UIImageView() leftImageView.image = UIImage(named: "email") let leftView = UIView() leftView.addSubview(leftImageView) leftView.frame = CGRect(x: 0, y: 0, width: 40, height: 40) leftImageView.frame = CGRect(x: 10, y: 10, width: 20, height: 20) userNameTextField.leftViewMode = .always userNameTextField.leftView = leftView

Estoy tratando de configurar UIImageView mediante programación en Xcode 6.1:

@IBOutlet weak var bgImage: UIImageView! var image : UIImage = UIImage(named:"afternoon")! bgImage = UIImageView(image: image) bgImage.frame = CGRect(x: 0, y: 0, width: 100, height: 200) view.addSubview(bgImage)

Pero Xcode dice "declaración esperada" con bgImage = UIImageView(image: image) imagen "afternoon" es un PNG, y entiendo que PNG no necesita una extensión en XCode 6.1.

También probé solo bgImage.image = UIImage(named: "afternoon") , pero aún así obtengo:

ACTUALIZAR

OK, puse el código para actualizar UIImageView en la función viewDidLoad , pero UIImageView todavía no muestra la imagen (que existe en el directorio base como evening.png):

@IBOutlet weak var bgImage: UIImageView! @IBOutlet weak var dateLabel: UILabel! @IBOutlet weak var timeLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. updateTime() var timer = NSTimer() let aSelector : Selector = "updateTime" timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: aSelector, userInfo: nil, repeats: true) var image : UIImage = UIImage(named:"afternoon")! bgImage = UIImageView(image: image) }


Dado que tiene su bgImage asignada y vinculada como IBOutlet, no es necesario inicializarla como UIImageView ... en cambio, todo lo que necesita hacer es establecer la propiedad de la imagen como bgImage.image = UIImage(named: "afternoon") . Después de ejecutar este código, la imagen parecía estar bien, ya que ya estaba asignada usando la salida.

Sin embargo, si no fuera una salida y no la tuviera conectada a un objeto UIImageView en un archivo storyboard / xib, podría hacer algo como lo siguiente ...

class ViewController: UIViewController { var bgImage: UIImageView? override func viewDidLoad() { super.viewDidLoad() var image: UIImage = UIImage(named: "afternoon")! bgImage = UIImageView(image: image) bgImage!.frame = CGRectMake(0,0,100,200) self.view.addSubview(bgImage!) } }


En Swift 4, si la imagen se devuelve como nula.

Haga clic en la imagen, en el lado derecho (Utilidades) -> Verificar membresía objetivo


En xcode 8 puede elegir directamente la imagen de la ventana de selección (NUEVO) ...

  • Solo necesita escribir - "imagen" y obtendrá un cuadro de sugerencias y luego seleccionar - "Imagen literal" de la lista (ver en la imagen adjunta) y

  • luego toque el cuadrado para ver todas las imágenes (ver en
    segunda imagen adjunta) que están en sus activos de imagen ... o seleccione otra imagen desde allí.

  • Ahora toque el cuadro cuadrado - (Verá ese cuadro cuadrado después de seleccionar la opción anterior)


Este código está en el lugar equivocado:

var image : UIImage = UIImage(named:"afternoon")! bgImage = UIImageView(image: image) bgImage.frame = CGRect(x: 0, y: 0, width: 100, height: 200) view.addSubview(bgImage)

Debe colocarlo dentro de una función. Recomiendo moverlo dentro de la función viewDidLoad .

En general, el único código que puede agregar dentro de la clase que no está dentro de una función son declaraciones de variables como:

@IBOutlet weak var bgImage: UIImageView!


OK, funcionó con esto (creando el UIImageView programáticamente):

var imageViewObject :UIImageView imageViewObject = UIImageView(frame:CGRectMake(0, 0, 600, 600)) imageViewObject.image = UIImage(named:"afternoon") self.view.addSubview(imageViewObject) self.view.sendSubviewToBack(imageViewObject)


Qué tal esto;

myImageView.image=UIImage(named: "image_1")

donde image_1 está dentro de la carpeta de activos como image_1. png .

Esto funcionó para mí ya que estoy usando una caja de interruptor para mostrar una diapositiva de imagen.


Si desea hacerlo de la manera que mostró en su pregunta, esta es una forma de hacerlo en línea

class YourClass: UIViewController{ @IBOutlet weak var tableView: UITableView! //other IBOutlets //THIS is how you declare a UIImageView inline let placeholderImage : UIImageView = { let placeholderImage = UIImageView(image: UIImage(named: "nophoto")) placeholderImage.contentMode = .scaleAspectFill return placeholderImage }() var someVariable: String! var someOtherVariable: Int! func someMethod(){ //method code } //and so on }


Solo necesita arrastrar y soltar un ImageView , crear la acción de salida, vincularlo y proporcionar una imagen (Xcode buscará en su carpeta de assets el nombre que proporcionó (aquí: "Toronto"))

En yourProject/ViewController.swift

import UIKit class ViewController: UIViewController { @IBOutlet weak var imgView: UIImageView! override func viewDidLoad() { super.viewDidLoad() imgView.image = UIImage(named: "toronto") } }