- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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/
有没有一种方法可以“标记”对象的属性,使它们在反射中“突出”? 例如: class A { int aa, b; string s1, s2; public int AA
我是一名优秀的程序员,十分优秀!