Estoy tratando de establecer 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 está diciendo "declaración esperada" con bgImage = UIImageView(imagen: imagen)
Imagen `"tarde" es un PNG, y mi entendimiento es PNG no necesita una extensión en XCode 6.1.
También trató sólo bgImage.image = UIImage(named: "afternoon")
, pero todavía obtener:
ACTUALIZACIÓN
OK, he puesto el código para actualizar UIImageView
en la función viewDidLoad
, pero UIImageView
sigue sin mostrar la imagen (que existe en el directorio base como afternoon.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)
}
Ya que tienes tu bgImage asignada y enlazada como un IBOutlet, no hay necesidad de inicializarla como una UIImageView... en su lugar todo lo que necesitas hacer es establecer la propiedad de la imagen como bgImage.image = UIImage(named: "afternoon")
. Después de ejecutar este código, la imagen apareció bien ya que fue asignada usando la salida.
Sin embargo, si no fuera un outlet y no lo tuvieras ya conectado a un objeto UIImageView en un archivo storyboard/xib, entonces podrías 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!)
}
}
OK, lo tengo funcionando 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)
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 función viewDidLoad
.
En general, el único código que puedes añadir dentro de la clase que no esté dentro de una función son las declaraciones de variables como:
@IBOutlet weak var bgImage: UIImageView!