2016-07-10 1 views
0
[UIView animateWithDuration:0.3 delay:0.0f options:UIViewAnimationOptionCurveEaseInOut animations:^{ 
      [viewMain setFrame:CGRectMake(0, 30, 1024, 378)]; 
     } completion:^(BOOL finished){ 
      [txtViewNote becomeFirstResponder]; //Its a TextView 
     }]; 

위의 코드는 대부분 잘 동작합니다. 하지만 때로는 라인iOS TextView가 UIView 애니메이션 완성 블록 이후에 오류가 발생합니다.

[txtNote becomeFirstResponder] 

원인 충돌. 나는 try-catch를 가지고있다. 그러나 충돌은 블록을 잡으러 가지 않습니다.

+0

주 스레드에서 애니메이션을 호출하고 있는지 확인하십시오. – Raz

+0

메인 스레드에서 전화하고 있습니다. –

답변

0

방금 ​​문제가 해결되었습니다. 두 번째로이 시점에 올 때 실제로 발생합니다. 키보드에 2 명의 옵저버가 있습니다.

[[NSNotificationCenter defaultCenter] addObserver : 셀렉터 : @ 선택기 (keyboardWillShow :) 이름 : UIKeyboardWillShowNotification 개체 : nil];

[[NSNotificationCenter defaultCenter] addObserver : 셀렉터 : @selector (keyboardWillHide :) name : UIKeyboardWillHideNotification object : nil];

그러나보기를 닫을 때 관찰자를 제거하지 않았습니다. 따라서 핵심 코드가이 코드를 2 차로 처리 할 수 ​​없었던 이유는 무엇입니까? 코코아 터치에서 실제로 문제가 무엇인지 모릅니다. 그러나 그것의 해결.

관련 문제