У меня есть пользовательский UITableViewCell, который я пытаюсь настроить в банке для моего табличного представления. У меня есть метод, который используется для настройки моей ячейки, setupCell()
, который, похоже, не правильно меняет.Когда устанавливается высота нибы?
я установить высоту в методе Tableview heightForRow так:
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
let cell = tableView.dequeueReusableCellWithIdentifier(kProfilePicIdentifier) as! ProfilePictureTableViewCell
return cell.computeHeight()
}
Это занимает ячейку с этим методом, чтобы установить высоту:
override func computeHeight() -> CGFloat {
let screenRect = UIScreen.mainScreen().bounds
let height = screenRect.height * 0.4
return height
}
Метод setupCell выглядит так:
override func setupCell() {
profilePicture.image = UIImage(named: "prof_pic")
profilePicture.layer.cornerRadius = profilePicture.frame.size.height/4.6
profilePicture.clipsToBounds = true
}
Формула cornerRadius - это то, что заставляет его работать именно для той высоты, которую я установил. Но, как только я изменяю высоту функции computeHeight
, которая, в свою очередь, изменяет высоту строки tableViewCell, круг становится испорченным, потому что, похоже, он не получает правильную высоту.
Разъем profilePicture устанавливается равным половине размера общей высоты представления, но, похоже, это не отражается на том, что когда я звоню setupCell
, он всегда устанавливается на постоянный размер, а не на половину размера вид.
Кто-нибудь знает, когда на самом деле установлена высота ячейки? И когда можно было бы называть этот метод так, чтобы я мог легко разделить высоту на 2, чтобы получить радиус?
Редактировать: Так что мне не удалось заставить его работать, поместив угловую логику в layoutSubviews()
, однако мне все еще интересно узнать, когда установлены фактические высоты изображений внутри ниба.