我试图在Xcode 6.1中以编程方式设置UIImageView。
@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)
但是Xcode说"预期声明"与bgImage = UIImageView(image: image)
图像"下午"
是PNG,而我的理解是PNG在XCode 6.1中不需要扩展。
也试过只用bgImage.image = UIImage(named: "afternoon")
,但还是得到。
。
更新
好的,我已经把更新UIImageView
的代码放到了viewDidLoad
函数中,但是UIImageView
仍然没有显示图片(在基本目录中存在下午.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分配并链接为一个IBOutlet,没有必要将它初始化为一个UIImageView......相反,你需要做的是设置图像属性,如bgImage.image = UIImage(named: "afternoon")
。运行这段代码后,图像出现得很好,因为它已经使用出口分配了。
。
然而,如果它不是一个出口,并且你没有把它连接到故事板/xib文件上的UIImageView对象,那么你可以这样做,比如下面的内容
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!)
}
}
好了,用这个方法工作了(以编程方式创建UIImageView)。
var imageViewObject :UIImageView
imageViewObject = UIImageView(frame:CGRectMake(0, 0, 600, 600))
imageViewObject.image = UIImage(named:"afternoon")
self.view.addSubview(imageViewObject)
self.view.sendSubviewToBack(imageViewObject)
这段代码在错误的地方。
var image : UIImage = UIImage(named:"afternoon")!
bgImage = UIImageView(image: image)
bgImage.frame = CGRect(x: 0, y: 0, width: 100, height: 200)
view.addSubview(bgImage)
你必须把它放在一个函数里面。我建议把它移到viewDidLoad
函数里面。
一般来说,你在类中唯一可以添加的、不在函数内的代码是变量声明,比如。
@IBOutlet weak var bgImage: UIImageView!