Definir programmaticamente imagem para UIImageView com Xcode 6.1/Swift

I'estou tentando configurar o UIImageView programmaticamente no 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)

Mas Xcode está dizendo "declaração esperada" com bgImage = UIImageView(image: image) Image "afternoon"é um PNG, e meu entendimento é PNG não precisa de uma extensão no XCode 6.1.

Também tentei apenas bgImage.image = UIImage(named: "afternoon"), mas ainda assim consegui:

**UPDATE***

OK, eu coloquei o código para atualizar o UIImageView na função viewDidLoad', mas oUIImageView' ainda não está mostrando a imagem (que existe no diretório 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)
}
Solução

Como você tem sua bgImage atribuída e ligada como um IBOutlet, não há necessidade de inicializá-la como um UIImageView... ao invés disso, tudo que você precisa fazer é definir a propriedade de imagem como bgImage.image = UIImage(named: "afternoon"). Depois de executar este código, a imagem parecia estar bem, já que já estava atribuída utilizando a saída.

No entanto, se era't uma tomada e você não't o tinha já ligado a um objecto UIImageView num ficheiro storyboard/xib, então podia fazer algo como o seguinte...

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!)
    }
}
Comentários (0)

OK, consegui trabalhar com isto (criando o UIImageView programmaticamente):

var imageViewObject :UIImageView

imageViewObject = UIImageView(frame:CGRectMake(0, 0, 600, 600))

imageViewObject.image = UIImage(named:"afternoon")

self.view.addSubview(imageViewObject)

self.view.sendSubviewToBack(imageViewObject)
Comentários (0)

Este código está no lugar errado:

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

Você deve colocá-lo dentro de uma função. Eu recomendo movê-lo dentro da função `viewDidLoad'.

Em geral, o único código que você pode adicionar dentro da classe que's não estão dentro de uma função são declarações de variáveis como:

@IBOutlet weak var bgImage: UIImageView!
Comentários (1)