我有一个带有 ImageView 的自定义表格 View 单元格。我试图使 ImageView 成为圆形,但它不是圆形的,我无法查明问题所在。
import UIKit
class LegislatorImageCell: UITableViewCell {
@IBOutlet weak var repImageView: UIImageView!
@IBOutlet weak var repOfficeLabel: UILabel!
@IBOutlet weak var repNameLabel: UILabel!
@IBOutlet weak var repPartyLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
repOfficeLabel.textColor = .white
repNameLabel.textColor = .white
repPartyLabel.textColor = .white
repImageView.layer.cornerRadius = repImageView.frame.height / 2
repImageView.clipsToBounds = true
repImageView.layer.borderWidth = 2.0
repImageView.layer.borderColor = UIColor.white.cgColor
repImageView.backgroundColor = UIColor.clear
print("HEIGHT: \(repImageView.frame.height)")
print("WIDTH: \(repImageView.frame.width)")
print("CORNER RADIUS: \(repImageView.layer.cornerRadius)")
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
这里是打印语句的结果。
HEIGHT: 125.0
WIDTH: 125.0
CORNER RADIUS: 62.5
你可以把断点放在
repImageView.layer.cornerRadius = repImageView.frame.height / 2
并打印repImageView.frame.height
。你会意识到代码正在做它应该做的事情。将拐角半径设置为当前高度的一半。
问题是高度还没有正确更新。将您的代码移动到 viewWillLayoutSubviews()
。那应该可以解决问题。或者,如果您知道 ImageView 的最终高度/宽度。直接设置就可以了
whateverHeight / 2
Tôi là một lập trình viên xuất sắc, rất giỏi!