Я пытаюсь создать UITableViewCell с цветным кругом слева. Мой план состоит в том, чтобы использовать UIButton и манипулировать его угловым радиусом слоя. Однако цветная кнопка никогда не появляется.нарисовать цветной круг в UITableViewCell
Мой XIB:
У меня есть IBOutlet моей ColorHolder UIButton и переменную для ее цвета.
class ColoredCircleCell: UITableViewCell {
@IBOutlet weak var colorHolder: UIButton!
@IBOutlet weak var infoRow1: UILabel!
@IBOutlet weak var infoRow2: UILabel!
var circleColor: CGColor = UIColor.clear.cgColor
override func awakeFromNib() {
super.awakeFromNib()
colorHolder.layer.cornerRadius = colorHolder.bounds.size.height/2
colorHolder.layer.backgroundColor = circleColor
colorHolder.clipsToBounds = true
}
В моей cellForRowAt indexPath:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CircleCell", for: indexPath) as! ColoredCircleCell
print(cell.colorHolder.bounds.size.height)
cell.colorHolder.layer.cornerRadius = cell.colorHolder.bounds.size.height/2
cell.colorHolder.layer.backgroundColor = UIColor.red.cgColor
cell.infoRow1.text = "H1"
return cell
}
Консоль говорит мне, что размер ячейки 1000. Я предполагаю, что это до сих пор не изменяется относительно высоты строки.
EDIT: Я сузил проблему до cell.colorHolder.layer.cornerRadius = cell.colorHolder.bounds.size.height/2
. Значение cell.colorHolder.bounds.size.height
всегда 1000. Как извлечь правильное значение ПОСЛЕ того, как оно было отображено на экране?
Выход:
Как добавить настраиваемый круг для моей UITableViewCell?
Проверьте ограничения кнопки, которые могут возникнуть. –
Является ли размер этой кнопки динамической? Не можете ли вы просто сделать hardcode the cornerRadius? – almas
Да, цель состоит в том, чтобы сделать размер кнопки динамическим. hardcoded cornerRadius определенно облегчит мою жизнь, хотя – meowmeowmeow