gpt4 book ai didi

iOS 工具栏有时会突出显示/选择错误的按钮

转载 作者:行者123 更新时间:2023-11-29 05:02:33 25 4
gpt4 key购买 nike

我有一个 iOS 应用程序,它在一个 View 中用代码创建一个工具栏。这里没什么特别的;只是一堆标准的 UIBarButtonItems(用 initWithImage 初始化,每个都调用不同的选择器),使用 UIToolbar setItems:animated(没有动画)添加(连同间隔符)到工具栏。

这在大多数情况下都可以正常工作...但有时,在多次转到另一个 View 并返回到此 View 后,工具栏的触摸处理似乎已关闭。它突出显示并调用错误的按钮。也不总是相同的错误按钮;有时它就在我实际点击的旁边,但有时它距离更远,甚至在工具栏的另一侧清晰可见。

它没有任何模式,但如果你尝试足够长的时间(切换到另一个 View ,然后返回到这个 View ),它总是会发生。当另一个 View 处于不同的屏幕方向时(由其 shouldAutorotateToInterfaceOrientation 实现强制),这种情况似乎更常见,但即使所有 View 具有相同的方向,它仍然会时不时地发生。当这种情况发生时,我的选择器将被调用,发送者与实际突出显示的按钮匹配,而不是我触摸的按钮。因此,这似乎确实是 iOS 中的某些问题无法正确处理触摸。

我的 google-fu 完全没有找到有关此问题的任何其他报告...看起来这一定是 Apple 的错误,因为我的代码都不涉及工具栏触摸处理。这种情况在 iOS 4.3 下的模拟器和设备上都会发生(尚未尝试其他版本)。

还有其他人遇到过这个问题吗?关于如何避免这种情况有什么建议吗?

最佳答案

好的,我发现问题了。创建工具栏的不是代码本身;而是创建工具栏的代码。这是它被调用的位置(以及频率!)。

这是遗留代码,我们没有注意到创建工具栏代码是从 View 的 didRotateFromInterfaceOrientation 方法调用的(出于我们无法想象的原因)。该方法被频繁调用,并且旧的工具栏没有被拆除,因此它在工具栏之上创建工具栏。在这种情况下,触摸处理变得不稳定也就不足为奇了。

删除那里的调用(并将其放入 viewDidLoad 中,就像人们所期望的那样)解决了问题。抱歉浪费了大家的时间...但也许下一个偶然发现奇怪的工具栏行为的人会发现这很有帮助。

关于iOS 工具栏有时会突出显示/选择错误的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6540166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com