自定义子视图上TabBarController加入不是可点击

时间:2019-02-01 17:26:03

标签: ios swift uitabbarcontroller addsubview isuserinteractionenabled

我有一个自认为,我想添加为页脚我的TabBarController,这意味着休息权上的TabBar的顶部。我能够显示自定义视图,但是,自定义视图上的任何内容都无法轻敲。这就像自定义视图已isUserInteractionEnabled设置为false,但我从故事板中了解和调试我的代码,它的子视图的视图,并都已经isUserInteractionEnabled设置为true。因为下面的按钮从TabBarController的根视图控制器的自定义视图中被挖掘出来的而不是在顶部尽可能视图层次的自定义视图我说,它就像isUserInteractionEnabled之所以设置为false。在将子视图添加到TabBarController之前,我尝试过将isUserInteractionEnabled设置为false的解决方案。我试过检查子视图是否确实在TabBarController的顶部和边界之内。我现在正处于停车点,非常感谢您的帮助。我唯一可能使其无法被点击的线索是我初始化自定义视图的方式

static func nibInstance() -> CustomView {
    let nibView = Bundle.main.loadNibNamed(String(describing:(self)), owner: nil, options: nil)?.first as! CustomView
    return nibView
}

或者我在TabBarController中将其初始化为全局变量,然后将其添加到ViewDidAppear

import UIKit

class CustomTabBarController: UITabBarController {

    let footer = CustomView.nibInstance()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        if !self.footer.isDescendant(of: self.view) {
            self.view.superview!.addSubview(self.footer)
            self.footer.translatesAutoresizingMaskIntoConstraints = false
            self.footer.frame.size.width = self.view.frame.width
            self.footer.leadingAnchor.constraint(equalTo: self.footer.superview!.leadingAnchor, constant: 0)
            NSLayoutConstraint.activate([self.footer.leadingAnchor.constraint(equalTo: self.footer.superview!.leadingAnchor, constant: 0), self.footer.trailingAnchor.constraint(equalTo: self.footer.superview!.trailingAnchor, constant: 0)])
            NSLayoutConstraint.activate([self.footer.bottomAnchor.constraint(equalTo: self.tabBar.topAnchor, constant: 0)])
        }
    }

}

编辑:因此,即使我将自定义视图添加到单个视图控制器中,该自定义视图也仍然无法点击。

以下是我的项目的Github存储库的链接:https://github.com/ovais-panjwani/TapCustomView,并且我附加了Storyboard,customView和iPhone SE模拟器屏幕截图的屏幕截图,因此更易于理解。如有其他问题,请随时与我们联系。 Storyboard

CustomView

iPhoneSEScreenshot

0 个答案:

没有答案