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 o
UIImageView' 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)
}
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!)
}
}
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)
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!