1

I have a Nib file. Image attached. I would like this Nib file as the inputAccessoryView. Reason being accessoryView doesn't adhere to Safe Area on iphoneX. grrrr!

I have set up my Nib file as per this tutorial... https://medium.com/code-with-rohit/inputaccessoryview-and-iphonex-7b5547fe98da

How do I correctly get this Nib file inside the inputAccessoryView?

Nib File Constraints Structure

I have my custom Class "AccessoryView" as the File's Owner. From here I struggle.

Any help as always highly appreciated.

UPDATE: I've removed the File Owner and added the class to the top View.

In my AccessoryView Class I have

override init(frame: CGRect) { // for using CustomView in code
        super.init(frame: frame)
        self.commonInit()
    }

    required init?(coder aDecoder: NSCoder) { // for using CustomView in IB
        super.init(coder: aDecoder)
        if self.subviews.count == 0 {
            self.commonInit()
        }
    }

    class func instanceFromNib() -> UIView {
        return UINib(nibName: "AccessoryView", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView
    }


    private func commonInit() {
        guard let container = accessoryViewContainerView else { return }
        container.frame = self.bounds
        container.autoresizingMask = [.flexibleHeight, .flexibleWidth]
        self.addSubview(container)
    }
}

But it gave me the below effect:

new effect after changes

I then add the view to the inputAccessoryView as such:

override var inputAccessoryView: UIView? {
        get {
            return AccessoryView.instanceFromNib()
        }
    }

As you can see it has added the subViews but the constraints are all off.

David Henry
  • 1,972
  • 20
  • 43

0 Answers0