Настраиваемая панель вкладок с использованием XIB - PullRequest
0 голосов
/ 03 октября 2018

Создание настраиваемой панели вкладок Используя xib, мне нужно знать, как выбрать панель вкладок снизу для раскадровки, и мне нужно знать, как автоматически изменить размер этого представления для всех перьев

Снимок экрана:

My current tabbar look here

1 Ответ

0 голосов
/ 03 октября 2018

Определите класс UIView с именем MyTabBar и используйте тот же класс вместо UIView, где вы хотите добавить панель вкладок

class MyTabBar: NibView {

}

Теперь создайте суперкласс NibView, который будет обрабатывать все, что касается файла XIBслияние

class NibView: UIView {
    var view: UIView!

    override init(frame: CGRect) {
        super.init(frame: frame)
        xibSetup()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)        
        xibSetup()
    }
}

extension NibView {

    func xibSetup() {
        view = loadNib()
        view.translatesAutoresizingMaskIntoConstraints = false
        view.frame = bounds
        addSubview(view)

        // add Constraints
        addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[childView]|", options: [], metrics: nil, views: ["childView": view]))
        addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[childView]|", options: [], metrics: nil, views: ["childView": view]))
    }
}

extension UIView {
    func loadNib() -> UIView {
        let bundle = Bundle(for: type(of: self))
        let nibName = type(of: self).description().components(separatedBy: ".").last!
        let nib = UINib(nibName: nibName, bundle: bundle)
        return nib.instantiate(withOwner: self, options: nil).first as! UIView
    }
}

Подробнее о том, как использовать перо https://medium.com/swift2go/swift-custom-uiview-with-xib-file-211bb8bbd6eb

, можно узнать здесь.
...