屏幕左侧的 UIButton(在 iOS 7 导航滑动区域中)未突出显示

Posted

技术标签:

【中文标题】屏幕左侧的 UIButton(在 iOS 7 导航滑动区域中)未突出显示【英文标题】:UIButton on left side of screen (in iOS 7 navigation slide area) not highlighted 【发布时间】:2014-02-24 19:13:53 【问题描述】:

我在视图控制器(在 XIB 上)的最左侧有一个 UIButton,宽度为 100 磅。

如果视图控制器位于常规选项卡上(即未推送到导航堆栈上),则点击时按钮会按预期突出显示。

但是,当视图控制器位于更多选项卡上(因此被推到导航堆栈上)时,在左侧点击按钮时(比如最左边的 50 个点),按钮不会突出显示。该按钮确实起作用,正在调用它的动作。但是,当点击右侧时,它会突出显示。 (顺便说一句,我认为这是从任何其他视图控制器推送视图控制器时的普遍问题;可能不必是更多选项卡。)

经过一番研究,事实证明,当我点击左侧屏幕区域时,您可以使用 ios-7 滑回父视图。任何想法为什么会这样,以及如何使按钮再次正常工作。

感谢您的宝贵时间!

【问题讨论】:

我可以轻松地在无代码应用程序中重现这一点,因此您根本不需要所有“突出显示”和“drawRect”的东西。 - 我现在正在调查它是否只是一个模拟器错误。你在设备上试过吗? @matt 我一直在使用该设备,所以是的。 iOS 7.0.6。谢谢大佬! 也在设备上确认。看起来你有自己的系统错误。我建议你举报。 @matt 是从常规视图控制器还是从更多? 常规视图控制器,推送到导航堆栈上。正如您所说,左侧的可拖动区域似乎是干扰。它会干扰突出显示,但不会干扰点击。 【参考方案1】:

我几乎不需要任何代码就可以确认这个错误。您只需要一个图像文件作为背景图像。在情节提要中进行设置:

Navigation Controller -> (root view controller) ViewController -> Button -> push segue... ->
ViewController2 -> Button

将第二个按钮放在其包含视图(ViewController2 的视图)的左侧,并将图像文件设置为其突出显示背景图像。

现在运行应用程序并点击第一个按钮,以召唤第二个视图控制器的视图。点击右侧的按钮:突出显示的背景图像出现。现在点击左侧的按钮:高亮背景图像不会出现,但按钮实际上正在接收点击(您可以通过为其提供记录的操作方法来确认)。

所以,我会说你自己发现了一个合法的错误,你应该向 Apple 报告。我一定会的!

【讨论】:

我刚刚将它报告为错误。再次感谢! 我也举报了:16152959 另一个提高优先级的16865347【参考方案2】:

除非您需要 iOS 7 滑动弹出手势,否则您可以通过禁用该手势识别器来修复此错误:

self.navigationController.interactivePopGestureRecognizer.enabled = NO;

【讨论】:

Apple 仍未修复此错误,但这对我有用,谢谢! 很遗憾,这在 iOS 12.2、Xcode 10.3 中不起作用。

以上是关于屏幕左侧的 UIButton(在 iOS 7 导航滑动区域中)未突出显示的主要内容,如果未能解决你的问题,请参考以下文章

UIBarButtonItem在用作左侧或右侧导航栏项目时,自定义视图未在iOS 7上正确对齐

UIButton 在 iOS 7 中无法正常工作

如何在 iOS 7 上的 UINavigationController 中禁用向后滑动手势

更改 UIButton 标题导航栏的颜色

如何在导航栏上的 UIBarButtonItem 内偏移 UIButton 图像?

在 iOS 7 中更改后退按钮会禁用滑动导航