Столкнулся с проблемой. Содержимое ячейки основано не на границах ячейки, а на экране. Я устанавливаю ограничения для объектов в пользовательской ячейке:
override func setupViews() {
addSubview(staffLabel)
addSubview(shiftCollectionView)
staffLabel.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 1).isActive = true
staffLabel.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: 1).isActive = true
staffLabel.leftAnchor.constraint(equalTo: contentView.leftAnchor, constant: 0).isActive = true
staffLabel.widthAnchor.constraint(equalToConstant: 150).isActive = true
shiftCollectionView.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 0).isActive = true
shiftCollectionView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: 0).isActive = true
shiftCollectionView.leftAnchor.constraint(equalTo: staffLabel.rightAnchor, constant: 5).isActive = true
shiftCollectionView.rightAnchor.constraint(equalTo: contentView.rightAnchor, constant: 0).isActive = true
}
Но в симуляторе я получаю ![this.](https://i.stack.imgur.com/yhmJj.png)
Как вы можете видеть, мой CollectionView имеет константы safeArea. Но содержимое его клеток нет. (Кстати, заголовок по какой-то причине отображается правильно). Код для ячейки:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if indexPath.section == 0{
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: schedulesCellIdentifire, for: indexPath) as! SchedulesCell
return cell
} else {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: footerCollectionViewCellIdentifire, for: indexPath) as! CalendarFooterLineCell
return cell
}
}
Код для заголовка:
func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
return collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: headerCollectionViewCellIdentifire, for: indexPath)
}
Как я могу использовать SafeArea в моей настраиваемой коллекции ViewCell или как еще это исправить?
Я хочу содержимое ячеек, отображаемых в границах CollectionView. Теперь содержимое ячеек отображается в границах экрана, это частично скрыто (((*
Прошу прощения. Я недостаточно четко описал свою идею. Я хочу, чтобы она выглядела следующим образом: введите описание изображения здесь
Но для этого эффекта я вручную установил ограничение от leftAnchor экрана на 44. Это не круто, потому что я использую этот CollectionView на другом ViewController и отступе 44 очки там не нужны ((*
staffLabel.leftAnchor.constraint (equalTo: contentView.leftAnchor, постоянная: 44) .isActive = true
У меня проблема с отображением столбца Персонал. отображаться либо в границах в collectionView (collectionView устанавливается с учетом SafeArea), но это не происходит автоматически.
Или мне нужен способ определения границ SafeArea в пользовательском классе CollectionViewCell.
Спасибо всем заранее.