我正在尝试在inputAccessoryView
之上添加UITabBarController
并且我已成功完成此操作但在选择TabBarItem
之后出现一个问题,inputAccessoryView消失了,并且在选择时从不再显示回到TabBarItem
这就是我做的。
自定义视图是从这样的故事板创建的
@IBOutlet var containerView: UIView!
@IBOutlet weak var textView: UITextView!
然后创建inputAccessoryView
var accessoryView : PassThroughView? = PassThroughView()
override var inputAccessoryView: UIView? {
self.accessoryView?.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: 99)
self.containerView.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: 50)
self.accessoryView?.addSubview(self.containerView)
return self.accessoryView
}
override var canBecomeFirstResponder: Bool {
set {
}
get {
return true
}
}
PassThroughView
是UIView
的子类,允许通过accessoryView
进行触摸,以便我可以在TabBar
之上添加自定义视图,并且可以选择TabBarItem
inputAccessoryView
class PassThroughView: UIView {
override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
for subview in subviews {
if !subview.isHidden && subview.alpha > 0 && subview.isUserInteractionEnabled && subview.point(inside: convert(point, to: subview), with: event) {
return true
}
}
return false
}
}
结果非常简单
这里的想法是我将inputAccessoryView
设为TabBar
的高度+ containerView
的高度,inputAccessoryView
的背景为.clear
以便显示TabBar
。
我一直在寻找一个将inputAccessoryView放在TabBar
之上很长一段时间,任何人都知道这里的问题是什么?这是一个好主意,或者我应该使用noraml UIToolbar
自定义动画,任何想法?
感谢。