Не удается развернуть вид после помещения под NavigationController - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь программно разместить представление, содержащее файл пера, под навигационным контроллером.Представление должно расширяться, когда пользователь взаимодействует.Я использую YNDropDownMenu здесь, чтобы разместить представление под моим встроенным навигационным контроллером, которое будет расширяться, когда пользователь нажимает на него.Это нибфил, который добавляется в представление и добавляется на страницу.При работе это выглядит так:

Пример меню

При программном добавлении ограничений я получаю следующее:

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

// Add Filter Menu
        let ZBdropDownViews = Bundle.main.loadNibNamed("DropDownViews", owner: nil, options: nil) as? [UIView]
        let FFA409 = UIColor.init(red: 239/255, green: 239/255, blue: 244/255, alpha: 1.0)



        if let _pokeDownViews = PokeDownViews {
            // Inherit YNDropDownView if you want to hideMenu in your dropDownViews
            let view = YNDropDownMenu(frame: CGRect(x: 0, y: (navigationController?.navigationBar.frame.height)! + 20, width: (navigationController?.navigationBar.frame.width)! + 15, height: 45), dropDownViews: _pokedropDownViews, dropDownViewTitles: ["Sort By"])
            
            
            
            view.setImageWhens(normal: [UIImage(named: "Search"),UIImage(named: "Leaf Icon"),UIImage(named: "Leaf Icon"),UIImage(named: "Leaf Icon")], selectedTintColorRGB: "FFA409", disabledTintColorRGB: "D3D3D3")




            view.setLabelColorWhen(normal: .purple, selected: FFA409, disabled: .purple)
                        view.setLabelColorWhen(normalRGB: "000000", selectedRGB: "FFA409", disabledRGB: "D3D3D3")

            view.setLabelFontWhen(normal: .systemFont(ofSize: 12), selected: .boldSystemFont(ofSize: 16), disabled: .systemFont(ofSize: 16))
            //            view.setLabel(font: .systemFont(ofSize: 12))

            view.backgroundBlurEnabled = true
            //  view.bottomLine.backgroundColor = UIColor.black

            view.bottomLine.isHidden = false
            // Add custom blurEffectView






            self.view.addSubview(view)

            self.edgesForExtendedLayout = []//Optional our as per your view ladder


            view.translatesAutoresizingMaskIntoConstraints = false

            if #available(iOS 11.0, *) {
                let guide = self.view.safeAreaLayoutGuide
                view.trailingAnchor.constraint(equalTo: guide.trailingAnchor).isActive = true
                view.leadingAnchor.constraint(equalTo: guide.leadingAnchor).isActive = true
                view.topAnchor.constraint(equalTo: guide.topAnchor).isActive = true
                view.heightAnchor.constraint(equalToConstant: 50).isActive = true
            } else {
                NSLayoutConstraint(item: view,
                                   attribute: .top,
                                   relatedBy: .equal,
                                   toItem: view, attribute: .top,
                                   multiplier: 1.0, constant: 0).isActive = true
                NSLayoutConstraint(item: view,
                                   attribute: .leading,
                                   relatedBy: .equal, toItem: view,
                                   attribute: .leading,
                                   multiplier: 1.0,
                                   constant: 0).isActive = true
                NSLayoutConstraint(item: view, attribute: .trailing,
                                   relatedBy: .equal,
                                   toItem: view,
                                   attribute: .trailing,
                                   multiplier: 1.0,
                                   constant: 0).isActive = true

                view.heightAnchor.constraint(equalToConstant: 50).isActive = true
            }


            let backgroundView = UIView()
            backgroundView.backgroundColor = .black
            view.blurEffectView = backgroundView
            view.blurEffectViewAlpha = 0.85

            // Open and Hide Menu
            //            view.alwaysSelected(at: 0)
            //            view.disabledMenuAt(index: 2)
            //view.showAndHideMenuAt(index: 3)

            view.setBackgroundColor(color: UIColor.groupTableViewBackground)
            backgroundView.layer.borderWidth = UIScreen.main.bounds.width
            //            view.layer.borderWidth = UIScreen.main.bounds.width


            view.layer.cornerRadius = 7


            PokedropDownViews?.forEach({ (dropDownView) in
                if dropDownView.isKind(of: PokeFilterMemeView.self) {
                    (dropDownView as? PokeFilterMemeView)?.menuViewDelegate = self
                }

            })


        

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

Я не уверен, что делать, чтобы это исправить.Может ли кто-нибудь помочь мне здесь?

Спасибо.

...