TabBar顶部的inputAccessoryView在选择TabBarItem后消失,再也不会出现了?

时间:2016-10-26 04:51:08

标签: ios swift uitabbarcontroller uitoolbar inputaccessoryview

我正在尝试在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
    }
}

PassThroughViewUIView的子类,允许通过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自定义动画,任何想法?

感谢。

0 个答案:

没有答案