IT ALL将依赖UI
这个警告可以几个实施不同的对象:拾取器,键盘等
我发现它与UI需要两个步骤来完成转换或其他动画有关。或者对于UI正在尝试完成一件事情并且在完成之前被要求执行另一件事的任何实例。 (因此它涵盖了各种可能的触发器)
我看到警告出现在4.0 & 4.2。在我的情况下,我正在旋转设备并捕捉键盘是否仍然弹起(即文本字段仍然是第一响应者)。如果是这样,键盘需要保持在意见之间,但这与其他观点有其他复杂性。
因此,我实现了一个BOOL跟踪器来跟踪keybaordIsPresent,如果是的话我是{textfield resignFirstResponder];当检测到方向改变并且将该文本字段重置为在包含在动画块中的转换之后变为FRAMEResponder。我的BOOL跟踪器效果更好,我仍然使用键盘的NSNotifications,但旋转过程中出现通知重叠,因为键盘在没有请求的情况下被解散。 BOOL在加载时设置为NO,当[textfield resignFirstResponder];已实施。 *不是当“ - (void)keyboardWillhide被NSNotifications触发时,它给了我两个永不冲突的工作触发器,BOOL被设置为YES,只有当用户触摸textfield时,它才会自动触发成为FirstResponder。
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
if (keyboardIsPresent == YES) {
[self.entryTextField resignFirstResponder];
}
//Determine Which Orientation is Present:
if((fromInterfaceOrientation == UIInterfaceOrientationPortrait) || (fromInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)){
//LANDSCAPE VIEW:
[self configureLandscapeView];
}else {
//PORTRAIT VIEW:
[self configurePortraitView];
}
}
:出
-(void)willAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
//if (keyboardIsPresent == YES) {[self.entryTextField resignFirstResponder];}
} 的,并把它回到了代码的顶部为;通过取[textfild resignFirstResponder]警告
**即使我在 - (void)willAnimatFirstHalfOfRotationToInterface:中没有代码,警告仍然弹出。我认为警告仍然弹出,因为编译器在尝试执行第一个动画时仍然需要尝试该方法,因此会获得双重动画调用或资源重叠。它不知道该方法没有可执行代码,直到它运行完毕。到那时,它已经预留了资源,以准备处理该方法中可能的行为。
**为了省略警告,我必须删除或删除willAnimateFirstHalfOfRotation的代码,以便编译器不必检查是否有可能需要在第二个动画或可能需要执行的动作同一时间。
/*-(void)willAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
//if (keyboardIsPresent == YES) {[self.entryTextField resignFirstResponder];}}*/
转换完成后,原动画块中我检查,看看是否“keyboardIsPresent”是YES之前的旋转,如果是这样,我再次辞职第一响应者。我用setAnimationDuration:0.3
出来很干净,而不是跳动。
赏金是使用公共apis找到解决方法。 – 2010-09-19 15:28:34
更具体地说,是使用UIImagePickerController时出现的两阶段旋转警告的解决方法。 – 2010-09-20 10:33:50
澄清 - 意图是没有烦人的警告功能的完整幻灯片 – 2010-09-21 12:46:46