iOS8로 전환 한 후 키보드 전환 중에보기를 움직이면 이상한 동작이 나타납니다. 아무도 무슨 일이 일어나고 있는지 설명 할 수 있습니까?iOS8 : 키보드 전환 도중 이동하는보기가 어떻게됩니까?
다음은이 문제를 보여주는 최소 예입니다. UITextField
과 UIButton
의 간단한보기가 있습니다. nudgeUp
함수는 텍스트 필드와 버튼을 10 포인트 위로 이동합니다. buttonPressed
콜백 또는 keyboardWillShow
콜백에 의해 트리거됩니다.
단추를 누르면 코드가 예상대로 작동합니다. buttonPressed
은 nudgeUp
이고 단추와 텍스트 필드는 10 포인트 씩 위로 이동합니다.
텍스트 필드를 탭하면 keyboardWillShow
은 nudgeUp
을 호출하지만 동작은 매우 다릅니다. 버튼과 텍스트 필드는 즉시 을 점프하여을 10 포인트 올린 다음 키보드가 표시 될 때 원래 위치로 다시 슬라이드합니다.
왜 이런 일이 발생합니까? iOS8에서 키보드 프레젠테이션 중에 애니메이션을 다시 제어하려면 어떻게해야합니까?
#import "ViewController.h"
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
}
- (void)keyboardWillShow:(NSNotification *)notification
{
// Called when the keyboard appears.
[self nudgeUp];
}
- (IBAction)buttonPressed:(id)sender {
[self nudgeUp];
}
- (void)nudgeUp
{
CGRect newTextFieldFrame = self.textField.frame;
newTextFieldFrame.origin.y -= 10;
self.textField.frame = newTextFieldFrame;
CGRect newButtonFrame = self.button.frame;
newButtonFrame.origin.y -= 10;
self.button.frame = newButtonFrame;
}
@end
나는이 질문을 발견 : 예
. (에서와 같이 addObserver 호출에서 참조 된 선택기 내의 중단 점은 절대 적중되지 않습니다!). 통지가 실제로 귀하에게 게시되었는지 확인 했습니까? iOS 8 및 자동 레이아웃이 방해가 될 수 있음에도 불구하고 내 앱은 자동 레이아웃으로 구축되지 않았기 때문에 충분히 유용합니다. – tobinjim
업데이트 : AutoLayout 체크 박스와 상관없이 텍스트 필드가 포함 된 새 단일 창 응용 프로그램 및 공지 게시물을 만들었습니다 ... hmm) – tobinjim
죄송합니다. 도움을받을 수 없습니다. 알림은 내 코드에 확실히 게시됩니다. – Pitarou