it-swarm.com.de

Stellen Sie das Bild mit Xcode 6.1 / Swift programmgesteuert auf UIImageView ein

Ich versuche, UIImageView in Xcode 6.1 programmgesteuert einzustellen:

@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 "afternoon" Ist ein PNG, und mein Verständnis ist, dass PNG keine Erweiterung in XCode 6.1 benötigt.

Habe auch nur bgImage.image = UIImage(named: "afternoon") ausprobiert, bekomme aber trotzdem:

enter image description here

UPDATE

OK, ich habe den Code zum Aktualisieren von UIImageView in die Funktion viewDidLoad eingefügt, aber UIImageView zeigt das Bild immer noch nicht an (das im Basisverzeichnis als afternoon.png vorhanden ist). :

@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)
}
75
IlludiumPu36

Da Sie Ihr bgImage als IBOutlet zugewiesen und verknüpft haben, müssen Sie es nicht als UIImageView initialisieren. Stattdessen müssen Sie die image -Eigenschaft wie bgImage.image = UIImage(named: "afternoon") festlegen. Nach dem Ausführen dieses Codes schien das Bild in Ordnung zu sein, da es bereits über den Ausgang zugewiesen wurde.

enter image description here

Wenn es sich jedoch nicht um ein Outlet handelte und Sie es noch nicht mit einem UIImageView-Objekt in einer Storyboard-/XIB-Datei verbunden hatten, könnten Sie so etwas wie Folgendes tun:.

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!)
    }
}
142
c_rath

In xcode 8 kannst du das Bild direkt aus dem Auswahlfenster auswählen (NEU) ...

  • Sie müssen nur "image" eingeben und erhalten ein Vorschlagsfeld. Wählen Sie dann "Image Literal" aus der Liste (siehe angefügtes Bild) und

  • tippen Sie dann auf das Quadrat, um alle Bilder zu sehen (siehe in
    zweites angefügtes Bild), das sich in Ihrem Bild-Assets befindet ... oder wählen Sie dort ein anderes Bild aus.

enter image description here

--- (enter image description here

43
Vijay Sharma

OK, damit hat es funktioniert (das UIImageView programmgesteuert erstellen):

var imageViewObject :UIImageView

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

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

self.view.addSubview(imageViewObject)

self.view.sendSubviewToBack(imageViewObject)
8
IlludiumPu36

Wie wäre es damit;

myImageView.image=UIImage(named: "image_1")

wobei sich image_1 im Assets-Ordner als image_1 befindet .png.

Dies hat bei mir funktioniert, da ich ein Schaltergehäuse verwende, um eine Bildfolie anzuzeigen.

6
dnaatwork.com

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 es in eine Funktion einfügen. Ich empfehle es in die viewDidLoad Funktion zu verschieben.

Im Allgemeinen sind Variablendeklarationen der einzige Code, den Sie innerhalb der Klasse hinzufügen können, der nicht in einer Funktion enthalten ist:

@IBOutlet weak var bgImage: UIImageView!
4
Alfie Hanssen

Sie müssen nur ein ImageView ziehen und ablegen, die Outlet-Aktion erstellen, verknüpfen und ein Bild bereitstellen (Xcode sucht in Ihrem assets -Ordner nach dem von Ihnen angegebenen Namen (hier: "toronto"))

Im yourProject/ViewController.Swift

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var imgView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()

        imgView.image = UIImage(named: "toronto")
    }
}
1
rust

Wenn Sie es so tun möchten, wie Sie es in Ihrer Frage gezeigt haben, können Sie es inline tun

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
}
1
Annjawn

Mit Swift Syntax funktionierte dies für mich:

    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
1
KOTIOS

In Swift 4, wenn das Bild als Null zurückgegeben wird.

Klicken Sie auf das Bild auf der rechten Seite (Dienstprogramme) -> Zielmitgliedschaft überprüfen

1
YaBoiSandeep