我有一个Nib文件。附图。我希望这个Nib文件作为inputAccessoryView。原因是accessoryView不遵守iphoneX上的安全区域。 GRRRR!
我按照本教程设置了我的Nib文件... https://medium.com/code-with-rohit/inputaccessoryview-and-iphonex-7b5547fe98da
如何在inputAccessoryView中正确获取此Nib文件?
我将自定义类“AccessoryView”作为文件所有者。从这里我挣扎。
任何帮助,一如既往地高度赞赏。
更新 我删除了文件所有者,并将该类添加到顶部视图。
在我的AccessoryView类中我有
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)
}
}
但它给了我以下效果:
然后我将视图添加到inputAccessoryView:
override var inputAccessoryView: UIView? {
get {
return AccessoryView.instanceFromNib()
}
}
正如您所看到的,它已添加了子视图,但约束都已关闭。