Как мне прикрепить представление пользовательского интерфейса под elementKindSectionHeader представления коллекции? - PullRequest
0 голосов
/ 20 февраля 2019

Я создал коллекционное представление и хорошо использовал UICollectionView.elementKindSectionHeader, зарегистрировав класс заголовка.См. Мой код ниже:

override func viewDidLoad() {
        super.viewDidLoad()           
        setupCollectionViewLayout()
        setupCollectionView()
        setupMenuBar()
    }

    var headerView: HeaderView?

    fileprivate func setupCollectionViewLayout() {
        if let layout = collectionViewLayout as? UICollectionViewFlowLayout {
            layout.sectionInset = .init(top: padding, left: padding, bottom: padding, right: padding)
        }
    }

    fileprivate func setupCollectionView() {
        self.collectionView.backgroundColor = .white

        //For iPhone X's make sure it doesn't cover the swipe bar at bottom
        self.collectionView.contentInsetAdjustmentBehavior = .never

        // Register cell classes
        self.collectionView!.register(UICollectionViewCell.self, forCellWithReuseIdentifier: cellId)

        self.collectionView.register(HeaderView.self, forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: headerId)

        self.collectionView.contentInset = UIEdgeInsets(top: 60, left: 0, bottom: 0, right: 0)
        self.collectionView?.scrollIndicatorInsets = UIEdgeInsets(top: 60, left: 0, bottom: 0, right: 0)
    }

, который дает мне хороший заголовок, такой как: enter image description here

Но теперь я хочу строку меню ниже заголовок, но над основным разделом представления коллекции.Я создал MenuBar с правильными размерами, но я не могу думать, чем его ограничить?См. Мой код ниже, чтобы добавить строку меню в данный момент:

let menuBar: MenuBar = {
    let mb = MenuBar()
    return mb
}()
fileprivate func setupMenuBar() {
    view.addSubview(menuBar)
    view.addConstraintWithFormat(format: "H:|[v0]|", views: menuBar)
    view.addConstraintWithFormat(format: "V:|-400-[v0(50)]|", views: menuBar)
}

.. но это буквально просто прижимает панель на 400 пикселей вниз по всему виду и не перемещается, если вы прокручиваете вверх или вниз

enter image description here

У кого-нибудь есть идея для этого?

1 Ответ

0 голосов
/ 20 февраля 2019

Если вы хотите, чтобы эта строка меню двигалась с помощью прокрутки UITableView, она должна быть помещена внутри заголовка, ниже «основного заголовка».

Эта абстракция подхода рассматривает ваш заголовок + строку меню кактолько один заголовок.

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