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 que la "declaración esperada" con bgImage = UIImageView(image: image)
Image "afternoon"
es un PNG, y tengo entendido que PNG no necesita una extensión en XCode 6.1.
También intenté solo bgImage.image = UIImage(named: "afternoon")
, pero aún así obtengo:
ACTUALIZAR
OK, puse el código para actualizar UIImageView
en la viewDidLoad
función, pero UIImageView
todavía no muestra la imagen (que existe en el directorio base como tarde.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)
}
bgImage = UIImageView(image: image)
solo usarbgImage.image = UIImage(named: "afternoon")
?Respuestas:
Dado que tiene su bgImage asignada y vinculada como un IBOutlet, no es necesario inicializarlo como un 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 mediante la salida.Sin embargo, si no era una salida y no lo tenía ya conectado a un objeto UIImageView en un archivo storyboard / xib, entonces 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!) } }
fuente
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, luego seleccione - "Imagen literal" de la lista (vea la imagen adjunta) y
luego toque en el cuadrado, podrá ver todas las imágenes (ver en la
segunda imagen adjunta) que están en sus activos de imagen ... o seleccione otra imagen desde allí.
fuente
OK, lo hice funcionar con esto (creando el UIImageView mediante programación):
var imageViewObject :UIImageView imageViewObject = UIImageView(frame:CGRectMake(0, 0, 600, 600)) imageViewObject.image = UIImage(named:"afternoon") self.view.addSubview(imageViewObject) self.view.sendSubviewToBack(imageViewObject)
fuente
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.
fuente
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)
Debes colocarlo dentro de una función. Recomiendo moverlo dentro de la
viewDidLoad
función.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!
fuente
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
fuente
En Swift 4, si la imagen se devuelve como nil.
Haga clic en la imagen, en el lado derecho (Utilidades) -> Verificar membresía de destino
fuente
Si desea hacerlo de la forma 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 }
fuente
Solo necesita arrastrar y soltar
ImageView
, crear la acción de salida, vincularla y proporcionar una imagen (Xcode buscará en suassets
carpeta 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") } }
fuente