如何仅在导航栏的栏按钮项中启用用户交互?

时间:2012-11-22 14:12:58

标签: iphone ios ipad

我有一个应用程序,它拥有像UI这样的新Facebook应用程序。在那里,侧面菜单控制器就在那里。导航栏上有一个按钮,点击它会给你菜单。但我的问题是在我使用导航栏的示例中也可以移动,我通过在导航栏中设置userinteractionenabled = no来解决此问题。但我只需要在导航栏的按钮中启用用户交互。如果我喜欢我做的事情,整个导航栏就变得无法点击了。有人可以帮助我实现这个目标吗?

2 个答案:

答案 0 :(得分:0)

如果您有自定义按钮,请使用此

UIBarButtonItem *button = self.navigationItem.rightBarButtonItem;
button.enabled = NO;

答案 1 :(得分:0)

这是我使用的代码。它并不能完全启用用户交互,但我想出了如何将标题设置为白色,然后在单击时更改颜色。 (看 setTitleColor 行 覆盖 func viewDidLoad() { super.viewDidLoad()

let handleButton = UIButton.init(type: .custom)
    button.setTitle("Register", for: .normal)
    button.layer.backgroundColor = CGColor.init(gray: 0.0, alpha: 0.0)
    button.setTitleColor(.white, for: .normal)
    button.setTitleColor(.red, for: .highlighted)
       button.layer.borderWidth = 1
       button.layer.cornerRadius = 5
       button.layer.borderColor = UIColor.white.cgColor
    self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: button)

    button.addTarget(self, action: #selector(didTapRegister), for: .touchUpInside)
    
    if let button = self.navigationItem.rightBarButtonItem?.customView {
        button.frame = CGRect(x:0, y:0, width:80, height:34)
}