我想在UITableViewCell中自定義舍入圖像。但是,我無法獲得故事板中設置的正確寬度。爲什麼?爲什麼我在UIImageView中得到錯誤的幀寬度值
class CustomTableViewCell: UITableViewCell {
@IBOutlet weak var myImageView: UIImageView!
@IBOutlet weak var userImageView: UIImageView!
@IBOutlet weak var captionLabel: UILabel!
@IBOutlet weak var gradientView: UIView!
var photo: Photo! {
didSet {
self.updateUI()
}
}
override func layoutSubviews() {
super.layoutSubviews()
userImageView.layer.cornerRadius = 0.5 * self.userImageView.frame.width
print("\(self.userImageView.frame.width)") // print out 1000.0 !! WHY?
userImageView.layer.cornerRadius = 24 // IT WORKS!
}
private func updateUI() {
self.myImageView.image = UIImage(named: photo.name)
self.userImageView.image = UIImage(named: photo.user)
self.captionLabel.text = photo.caption
print("\(self.userImageView.frame.width)") // print out 1000.0 !! Same here
}
}
的'自動佈局你的tableview可能會影響它的單元格框架。如果你使用'autolayout',你最好不要使用框架。 – Catoshi
我的猜測是你在錯誤的時間做這件事。我知道這是'layoutSubviews',但它可能仍然是'userImageView'尚未鋪設。 'layoutSubviews'必須在視圖層次結構之前一直滲透。你還沒有解釋這個'layoutSubviews' _is_。它在哪裏?什麼是視圖層次結構? – matt
我用代碼更新了我的解釋。 – WeiJay