I'm versucht, UIImageView programmatisch in Xcode 6.1 zu setzen:
@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)
Aber Xcode sagt "erwartete Deklaration" mit bgImage = UIImageView(image: image)
Image "Nachmittag"
ist ein PNG, und mein Verständnis ist PNG nicht eine Erweiterung in XCode 6.1 benötigen.
Auch versucht, nur bgImage.image = UIImage(named: "Nachmittag")
, aber immer noch erhalten:
UPDATE
OK, ich habe den Code zum Aktualisieren von UIImageView
in die Funktion viewDidLoad
eingebaut, aber UIImageView
zeigt immer noch nicht das Bild an (das im Basisverzeichnis als afternoon.png existiert):
@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)
}
Da Sie Ihr bgImage als IBOutlet zugewiesen und verknüpft haben, müssen Sie es nicht als UIImageView initialisieren... stattdessen müssen Sie nur die Bildeigenschaft wie "bgImage.image = UIImage(named: "afternoon")`" festlegen. Nachdem dieser Code ausgeführt wurde, erschien das Bild gut, da es bereits über den Ausgang zugewiesen wurde.
Wenn es sich jedoch nicht um einen Ausgang handelt und Sie es nicht bereits mit einem UIImageView-Objekt in einer Storyboard/xib-Datei verbunden haben, könnten Sie etwas wie das Folgende verwenden...
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, bekam es funktioniert mit diesem (Erstellen der UIImageView programmatisch):
var imageViewObject :UIImageView
imageViewObject = UIImageView(frame:CGRectMake(0, 0, 600, 600))
imageViewObject.image = UIImage(named:"afternoon")
self.view.addSubview(imageViewObject)
self.view.sendSubviewToBack(imageViewObject)
Dieser Code befindet sich an der falschen Stelle:
var image : UIImage = UIImage(named:"afternoon")!
bgImage = UIImageView(image: image)
bgImage.frame = CGRect(x: 0, y: 0, width: 100, height: 200)
view.addSubview(bgImage)
Sie müssen ihn innerhalb einer Funktion platzieren. Ich empfehle, ihn innerhalb der Funktion viewDidLoad
zu platzieren.
Im Allgemeinen ist der einzige Code, den Sie innerhalb der Klasse hinzufügen können, der nicht innerhalb einer Funktion ist, die Deklaration von Variablen wie:
@IBOutlet weak var bgImage: UIImageView!