我正在为UICollectionViewCell创建子类,这就是我的代码看起来像
var homeImageView : UIImageView!
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
self.configure()
}
override init(frame: CGRect) {
super.init(frame: frame)
self.configure()
}
func configure () {
homeImageView.translatesAutoresizingMaskIntoConstraints = false
self.addSubview(homeImageView)
self.setupConstraints()
}
func setupConstraints () {
self.addConstraints([
self.topAnchor.constraintEqualToAnchor(homeImageView.topAnchor),
self.leftAnchor.constraintEqualToAnchor(homeImageView.leftAnchor),
self.rightAnchor.constraintEqualToAnchor(homeImageView.rightAnchor),
self.bottomAnchor.constraintEqualToAnchor(homeImageView.bottomAnchor)
])
}
我的应用崩溃了,我在这一行收到错误消息
homeImageView.translatesAutoresizingMaskIntoConstraints = false
错误消息
致命错误:在解包可选值时意外发现nil
造成这种情况的原因是什么?我已经尝试将图像和帧分配给imageView,但应用程序仍然崩溃并给出相同的错误。
在Obj-c中,我只使用alloc init,将translatesAutoresizingMaskIntoConstraints设置为NO,添加为子视图并设置其约束,它将起作用。为什么这不起作用?我做错了什么?
答案 0 :(得分:2)
您永远不会创建UIImageView
。
替换:
var homeImageView: UIImageView!
使用:
let homeImageView = UIImageView()