我有一个视图(其中几个实际上)与底部的标准搜索栏。当用户触摸搜索栏时,我需要向上移动搜索栏,使其不被键盘隐藏,然后在键盘被解除时再次向下。键盘不通的间歇性故障
我这样做的方式与其他人一样,通过观察UIKeyboardWillShowNotification
和UIKeyboardWillHideNotification
。从这些通知中,我得到了键盘的高度,并告诉我在哪里放置搜索栏的底部边缘。它完美的工作,除了罕见的情况下,当搜索栏没有动画,或动画不够远,消失在键盘后面。在我和我的QA人员在iPhone和iPod上进行测试的数百次尝试中,我已经看到了这一次。只有一次,当键盘出现时,我看到搜索栏飞出屏幕顶部。我们从来没有在模拟器上看到过这种情况,我们在iPod上看到的频率比iPhone要高。我们正在运行iOS 4.x,主要是4.3.3。
所以我可以想到两种可能性。一个是偶尔UIKeyboardWillShowNotification
没有发送,另一个是通知中的数据是错误的。第二个将解释搜索栏飞离屏幕顶部的一种情况。
然后当然有可能我的代码在一些非常迂回的方式是错误的;但情景非常简单 - 进入视图并点击搜索栏 - 我无法看到代码中的错误如何导致这些罕见的间歇性故障。
如果有人能提供见解,我会非常感激。
我发现键盘通知给你的矩形不适应宽度和高度的设备的方向。您确定您正确地将坐标转换为包含搜索栏的视图的坐标系吗? –
我在做键盘动画时考虑了设备的方向,只要我不在运行4.2.1的旧版iPod上运行Release版本,它就可以可靠地工作。 –