UICollectionView не прокручивается после добавления пользовательского UIView для просмотра - PullRequest
0 голосов
/ 25 мая 2019

Я пытаюсь добавить пользовательский UIView после добавления UICollectionView, потому что я хочу показать пользовательский вид панели выше представления коллекции.Это мой код:

func loadFilters() {
    let categoriesFlowLayout = UICollectionViewFlowLayout()
    categoriesFlowLayout.scrollDirection = .vertical

    categoriesCollection = UICollectionView(frame: CGRect(x: 10, y: getY(yAxis: searchField) + 10, width: view.frame.size.width - 20, height: (view.frame.size.height * 9 / 10) - getY(yAxis: searchField) - 10), collectionViewLayout: categoriesFlowLayout)
    categoriesCollection.register(categoriesCell.self, forCellWithReuseIdentifier: "categoriesCell")
    categoriesCollection.delegate = self
    categoriesCollection.dataSource = self
    categoriesCollection.backgroundColor = UIColor.clear
    categoriesCollection.showsVerticalScrollIndicator = false
    categoriesCollection.showsHorizontalScrollIndicator = false
    view.addSubview(categoriesCollection)

    addBar()
    categoriesCollection.isUserInteractionEnabled = true
}

Функция addBar() объявлена ​​в пользовательском суперклассе ViewController

, если addBar() вызывается раньше view.addSubview(categoriesCollection), это похоже на изображение ниже, но еслион вызывается после того, как моя коллекция не прокручивает и не распознает прикосновения.Есть ли в любом случае прокрутка представления коллекции и вывод пользовательской панели на передний план?Я также использовал функции sendSubviewToBack() и bringSubviewToFront(), но результат тот же

custom bar

1 Ответ

0 голосов
/ 25 мая 2019

Когда вы вставляете вид выше другого вида, вид сверху получает все сенсорные события.Таким образом, UICollectionView больше не получает сенсорных событий, так как над ним находится другой вид.

Как я вижу из вашего поста, вам просто нужна полоса внизу экрана.Так что проверьте размер вашего кастома UIView.Вероятно, он заполняет весь экран и находится выше UICollectionView.Просто задайте UIView некоторый цвет фона и посмотрите, сколько места он заполняет.

Если это не сработает, вы можете использовать UIGestureRecognizer для пользовательского UIView и переслать касаниесобытия на UICollectionView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...