왼쪽에 컬러 원이있는 UITableViewCell을 생성하려고합니다. 내 계획은 UIButton을 사용하고 레이어의 모서리 반경을 조작하는 것입니다. 그러나 컬러 버튼은 나타나지 않습니다.
내 xib :
내 ColorHolder UIButton에 대한 IBOutlet과 해당 색상에 대한 변수가 있습니다.
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이라고 알려줍니다. 행 높이와 관련하여 여전히 크기가 조정되지 않은 것 같습니다.
편집 : 나는 문제를 cell.colorHolder.layer.cornerRadius = cell.colorHolder.bounds.size.height / 2
. 의 값 cell.colorHolder.bounds.size.height
은 항상 1000입니다. 화면에 렌더링 된 후 올바른 값을 어떻게 추출합니까?
출력 :
내 UITableViewCell에 대한 구성 가능한 원을 어떻게 추가합니까?
완성을 위해 여기에 답변을 게시하십시오. self.layoutIfNeeded(
경계에 액세스하기 전에) 를 추가해야했습니다 . 이 게시물 은 나를 도왔습니다.
override func awakeFromNib() {
super.awakeFromNib()
self.layoutIfNeeded()
colorHolder.layer.cornerRadius = colorHolder.bounds.size.height / 2
colorHolder.layer.backgroundColor = circleColor
colorHolder.clipsToBounds = true
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다