Xcode 6.1'de UIImageView'i programatik olarak ayarlamaya çalışıyorum:
@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)
Ancak Xcode "expected declaration" with bgImage = UIImageView(image: image)
Image "afternoon"
bir PNG ve anladığım kadarıyla XCode 6.1'de PNG'nin bir uzantıya ihtiyacı yok.
Ayrıca sadece bgImage.image = UIImage(named: "afternoon")
denedim, ancak hala alıyorum:
GÜNCELLEME
Tamam, UIImageView
ı güncellemek için kodu viewDidLoad
işlevine koydum, ancak UIImageView
hala resmi göstermiyor (temel dizinde afternoon.png olarak var):
@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 öğenizi bir IBOutlet olarak atadığınız ve bağladığınız için, onu bir UIImageView olarak başlatmanıza gerek yoktur... bunun yerine yapmanız gereken tek şey görüntü özelliğini bgImage.image = UIImage(named: "afternoon")
şeklinde ayarlamaktır. Bu kodu çalıştırdıktan sonra, çıkış kullanılarak zaten atandığı için görüntü iyi görünüyordu.
Ancak, bir çıkış noktası olmasaydı ve storyboard/xib dosyasındaki bir UIImageView nesnesine zaten bağlı olmasaydı, aşağıdaki gibi bir şey yapabilirdiniz...
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!)
}
}
Tamam, bununla çalışmasını sağladım (UIImageView'i programlı olarak oluşturma):
var imageViewObject :UIImageView
imageViewObject = UIImageView(frame:CGRectMake(0, 0, 600, 600))
imageViewObject.image = UIImage(named:"afternoon")
self.view.addSubview(imageViewObject)
self.view.sendSubviewToBack(imageViewObject)
Bu kod yanlış yerde:
var image : UIImage = UIImage(named:"afternoon")!
bgImage = UIImageView(image: image)
bgImage.frame = CGRect(x: 0, y: 0, width: 100, height: 200)
view.addSubview(bgImage)
Bunu bir fonksiyonun içine yerleştirmelisiniz. Bunu viewDidLoad
fonksiyonunun içine taşımanızı öneririm.
Genel olarak, bir fonksiyonun içinde olmayan sınıf içine ekleyebileceğiniz tek kod, aşağıdaki gibi değişken bildirimleridir:
@IBOutlet weak var bgImage: UIImageView!