I'm mencoba untuk mengatur UIImageView pemrograman dalam 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)
Tapi Xcode mengatakan "diharapkan deklarasi" dengan bgImage = UIImageView(gambar: gambar)
Gambar "sore"
adalah PNG, dan pemahaman saya adalah PNG tidak perlu perpanjangan di XCode 6.1.
Juga mencoba bgImage.gambar = UIImage(bernama: "sore")
, tapi masih mendapatkan:
UPDATE
OK, saya telah menempatkan kode untuk update UIImageView
ke viewDidLoad
fungsi, tapi UIImageView
ini masih belum menunjukkan gambar (yang ada di direktori dasar seperti sore hari.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)
}
Karena anda memiliki anda bgImage ditugaskan dan terkait sebagai IBOutlet, ada tidak perlu untuk menginisialisasi sebagai UIImageView... bukan semua yang perlu anda lakukan adalah mengatur gambar properti seperti bgImage.gambar = UIImage(bernama: "sore")
. Setelah menjalankan kode ini, gambar tampak baik-baik saja karena itu sudah ditetapkan menggunakan outlet.
Namun, jika itu bukan't stop kontak dan anda didn't harus sudah terhubung ke UIImageView objek pada storyboard/xib file, maka anda bisa jadi sesuatu seperti berikut...
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!)
}
}
Dalam xcode 8 anda dapat langsung memilih gambar dari jendela pilihan (BARU)...
Anda hanya perlu mengetik - "gambar" dan anda akan mendapatkan kotak saran kemudian pilih -"Gambar Literal" dari daftar (lihat di gambar terlampir) dan
kemudian tekan di alun-alun anda akan dapat melihat semua gambar(lihat di kedua gambar terlampir) yang ada di gambar aset atau pilih... gambar lainnya dari sana.
OK, got it bekerja dengan ini (menciptakan UIImageView pemrograman):
var imageViewObject :UIImageView
imageViewObject = UIImageView(frame:CGRectMake(0, 0, 600, 600))
imageViewObject.image = UIImage(named:"afternoon")
self.view.addSubview(imageViewObject)
self.view.sendSubviewToBack(imageViewObject)
Bagaimana tentang hal ini;
myImageView.image=UIImage(named: "image_1")
di mana image_1 ini berada di satu folder aset sebagai image_1.png.
Ini bekerja untuk saya karena saya'm menggunakan switch case untuk menampilkan slide gambar.
Kode ini di tempat yang salah:
var image : UIImage = UIImage(named:"afternoon")!
bgImage = UIImageView(image: image)
bgImage.frame = CGRect(x: 0, y: 0, width: 100, height: 200)
view.addSubview(bgImage)
Anda harus menempatkannya di dalam sebuah fungsi. Saya merekomendasikan bergerak di dalam viewDidLoad
fungsi.
Secara umum, hanya kode yang anda dapat tambahkan dalam kelas yang's tidak dalam fungsi ini adalah deklarasi variabel seperti:
@IBOutlet weak var bgImage: UIImageView!
Dengan cepat sintaks ini bekerja untuk saya :
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
Jika anda ingin melakukannya dengan cara anda menunjukkan dalam pertanyaan anda, ini adalah cara untuk melakukannya inline
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
}
Anda hanya perlu drag dan drop ImageView
, membuat outlet tindakan, link itu, dan memberikan sebuah gambar (Xcode akan terlihat di folder aset
bagi nama yang anda berikan (di sini: "toronto"))
Di yourProject/ViewController.swift
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var imgView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
imgView.image = UIImage(named: "toronto")
}
}