如何仅在导航栏的 barbutton 项中启用用户交互?
Posted
技术标签:
【中文标题】如何仅在导航栏的 barbutton 项中启用用户交互?【英文标题】:How to enable the userinteraction only in the barbutton item of the navigation bar? 【发布时间】:2012-11-22 14:12:58 【问题描述】:我有一个应用程序,它具有类似 UI 的新 Facebook 应用程序。在那里,有一个侧面菜单控制器。它在导航栏上有一个按钮,点击它会给你菜单。但我的问题是在示例中我使用的导航栏也可以移动,我通过在导航栏中设置 userinteractionenabled=no 来解决这个问题。但我只需要在导航栏中的按钮中启用用户交互。如果我喜欢我所做的,整个导航栏就变得不可点击。任何人都可以帮助我实现这一目标吗?
【问题讨论】:
【参考方案1】:如果您有自定义按钮,请使用此按钮
UIBarButtonItem *button = self.navigationItem.rightBarButtonItem;
button.enabled = NO;
【讨论】:
你的意思是......因为导航栏的用户交互被禁用了,那么它将如何工作? 不要禁用导航栏的用户交互...只是禁用按钮...(如您所愿“但我只需要在导航栏中的按钮中启用用户交互。”) 请看,我想禁用导航栏中的用户交互,并在按钮中启用.. 哈哈哈哈...意思是你想关上房子的大门,想进入屋内的房间...哈哈..怎么可能兄弟..:)【参考方案2】:这是我使用的代码。它并不能完全启用用户交互,但我想出了如何将标题设置为白色,然后单击更改颜色。 (看 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)
【讨论】:
以上是关于如何仅在导航栏的 barbutton 项中启用用户交互?的主要内容,如果未能解决你的问题,请参考以下文章
仅在折叠位置时如何设置 Bootstrap 5 导航栏的样式?
如何仅在特定屏幕(例如主屏幕)上启用抽屉导航 [react native] [react navigation]