반응형
1 | @interface YourViewController : ViewController<UITextFieldDelegate> | cs |
1 | self.mnemonicField.delegate=self; | cs |
textField에 delegate가 설정되어 있어야 함
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | -(void)setViewMovedUp:(BOOL)movedUp{ CGRect rect = self.view.frame; [UIView beginAnimations:nil context:NULL]; if(movedUp){ [UIView setAnimationDuration:0.3]; // if you want to slide up the view rect.size.height -= OFFSET_FOR_KEYBOARD; }else{ [UIView setAnimationDuration:0.0]; rect.size.height += OFFSET_FOR_KEYBOARD; } self.view.frame = rect; [UIView commitAnimations]; } -(void)textFieldDidBeginEditing:(UITextField *)textField { [self setViewMovedUp:YES]; } -(void)textFieldDidEndEditing:(UITextField *)textField { [self setViewMovedUp:NO]; } | cs |
애니메이션 없이 뷰 크기를 조절하면 키보드 보다 빨리 올라와서
까만 부분이 잠깐 보이게 됨
따라서 애니메이션 설정해서, 자연스럽게 변환함
반응형