CollectionViewController Заголовок начинается с края экрана Swift 4 - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть collectionviewcontroller, и я добавил в него представление заголовка в коде.Заголовок начинается из-под строки состояния, поэтому выглядит странно, потому что мой заголовок окрашен, а моя коллекция - белая.

Есть ли способ исправить это или хотя бы получить цвет.Я попытался использовать представление, но затем оно появляется поверх заголовка, и если я изменяю позицию z, оно идет за всем представлением коллекции.

Я пытался ограничить таким образом

self.collectionView.anchor(top: view.safeAreaLayoutGuide.topAnchor, leading: self.view.leadingAnchor, bottom: view.bottomAnchor, trailing: view.trailingAnchor)

Когда я бегу, область строки состояния просто становится черной, а заголовок остается на том же месте enter image description here

Ответы [ 3 ]

0 голосов
/ 02 декабря 2018

Я думаю, это из-за свойства contentInsetAdjustmentBehavior представления коллекций.Просто установите never, как beow:

collectionView.contentInsetAdjustmentBehavior = .never
0 голосов
/ 03 декабря 2018

Вы можете попробовать установить врезку следующим образом:

collectionView.contentInset.top = 44

Или, по крайней мере, , вы можете получить и установить цвет следующим образом: вы можете сделать UICollectionViewController для обработки UICollectionView и вИнтерфейсный Разработчик активирует нижний колонтитул, enter image description here

, затем вы можете использовать следующий метод:

    override func collectionView(_ collectionView: UICollectionView,
                             viewForSupplementaryElementOfKind kind: String,
                             at indexPath: IndexPath) -> UICollectionReusableView {

    switch kind {

    case UICollectionView.elementKindSectionHeader:

        let headerView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "Header", for: indexPath)

        headerView.backgroundColor = UIColor.blue
        return headerView

    default:

        assert(false, "kind unsupported")
    }
}
0 голосов
/ 30 ноября 2018

попробуйте

 let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
        layout.sectionInset = UIEdgeInsets(top: 20, left: 10, bottom: 10, right: 10)
        layout.itemSize = CGSize(width: 60, height: 60)

        let myCollectionView:UICollectionView = UICollectionView(frame: self.view.frame, collectionViewLayout: layout)
        myCollectionView.dataSource = self
        myCollectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "MyCell")
        myCollectionView.backgroundColor = UIColor.gray

        self.view.addSubview(myCollectionView)
...