Правильный выбор времени для рисования кругов с использованием Autolayout внутри UICollectionView - PullRequest
0 голосов
/ 29 августа 2018

Внутри каждой ячейки представления коллекции у меня есть вид, из которого я хотел бы сделать идеальный круг. Я основываю ширину ячеек на ширине основных видов, используя Autolayout.

Моя проблема: у некоторых видов нет идеального круга. Я предполагаю, что это конфликт по времени, что у меня еще не установлены границы основных представлений, прежде чем эти UIViews делятся на круги. Должен ли я нарисовать cornerRadius в определенное время? Все остальное работает отлично. Спасибо!

func collectionView(_ collectionView: UICollectionView, layout: UICollectionViewLayout, sizeForItemAt: IndexPath) -> CGSize {
    return CGSize(width: self.view.frame.width/3, height: 400)
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    if let sessionCell = (collectionView.dequeueReusableCell(withReuseIdentifier: Storyboard.cellID, for: indexPath)) as? DayCollectionViewCell {
        sessionCell.circleView.layer.cornerRadius = sessionCell.circleView.frame.width/2
        return sessionCell
    }
}

1 Ответ

0 голосов
/ 29 августа 2018

Вы должны установить его здесь

override func layoutSubviews() {
  super.layoutSubviews()
  self.circleView.layer.cornerRadius = self.circleView.frame.width/2
}

Внутри DayCollectionViewCell класс

...