J'essaie de définir UIImageView par programme dans 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)
Mais Xcode dit que "la déclaration attendue" avec bgImage = UIImageView(image: image)
Image "afternoon"
est un PNG, et je crois comprendre que PNG n'a pas besoin d'une extension dans XCode 6.1.
Également essayé juste bgImage.image = UIImage(named: "afternoon")
, mais toujours:
MISE À JOUR
OK, j'ai mis le code à mettre à jour UIImageView
dans la viewDidLoad
fonction, mais je UIImageView
ne montre toujours pas l'image (qui existe dans le répertoire de base en tant qu'après-midi.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)
}
bgImage = UIImageView(image: image)
simplement utiliserbgImage.image = UIImage(named: "afternoon")
?Réponses:
Étant donné que votre bgImage est attribuée et liée en tant qu'IBOutlet, il n'est pas nécessaire de l'initialiser en tant que UIImageView ... à la place, tout ce que vous avez à faire est de définir la propriété d'image comme
bgImage.image = UIImage(named: "afternoon")
. Après avoir exécuté ce code, l'image semblait correcte car elle était déjà attribuée à l'aide de la prise.Cependant, si ce n'était pas une prise et que vous ne l'aviez pas déjà connecté à un objet UIImageView sur un fichier storyboard / xib, vous pourriez alors quelque chose comme ce qui suit ...
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!) } }
la source
Dans xcode 8, vous pouvez directement choisir l'image dans la fenêtre de sélection (NOUVEAU) ...
Il vous suffit de taper - "image" et vous obtiendrez une boîte de suggestion, puis sélectionnez - "Image Literal" dans la liste (voir l'image ci-jointe) et
puis appuyez sur le carré, vous pourrez voir toutes les images (voir dans la
deuxième image ci-jointe) qui sont dans vos actifs d'image ... ou sélectionnez une autre image à partir de là.
la source
OK, je l'ai fait fonctionner avec ceci (création de UIImageView par programme):
var imageViewObject :UIImageView imageViewObject = UIImageView(frame:CGRectMake(0, 0, 600, 600)) imageViewObject.image = UIImage(named:"afternoon") self.view.addSubview(imageViewObject) self.view.sendSubviewToBack(imageViewObject)
la source
Que dis-tu de ça;
myImageView.image=UIImage(named: "image_1")
où image_1 se trouve dans le dossier des éléments en tant que image_1. png .
Cela a fonctionné pour moi puisque j'utilise un boîtier d'interrupteur pour afficher une diapositive d'image.
la source
Ce code est au mauvais endroit:
var image : UIImage = UIImage(named:"afternoon")! bgImage = UIImageView(image: image) bgImage.frame = CGRect(x: 0, y: 0, width: 100, height: 200) view.addSubview(bgImage)
Vous devez le placer dans une fonction. Je recommande de le déplacer dans la
viewDidLoad
fonction.En général, le seul code que vous pouvez ajouter dans la classe qui ne soit pas à l'intérieur d'une fonction sont des déclarations de variables telles que:
@IBOutlet weak var bgImage: UIImageView!
la source
Avec une syntaxe rapide, cela a fonctionné pour moi:
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
la source
Dans Swift 4, si l'image est renvoyée comme nulle.
Cliquez sur l'image, sur le côté droit (Utilitaires) -> Vérifier l'adhésion cible
la source
Si vous voulez le faire comme vous l'avez montré dans votre question, c'est une façon de le faire en ligne
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 }
la source
Il vous suffit de faire glisser et déposer un
ImageView
, de créer l'action de sortie, de le lier et de fournir une image (Xcode va chercher dans votreassets
dossier le nom que vous avez fourni (ici: "toronto"))Dans
yourProject/ViewController.swift
import UIKit class ViewController: UIViewController { @IBOutlet weak var imgView: UIImageView! override func viewDidLoad() { super.viewDidLoad() imgView.image = UIImage(named: "toronto") } }
la source