我的主控制器为UITextFieldDelegate
,并在其编辑状态发生变化时设置UITextField
动画。在故事板中,视图的原始位置位于屏幕的中心(垂直和水平),在编辑时,我将其放置在屏幕顶部。如果我现在从键盘完成“开始”操作,在文本字段上重新签名第一个响应者,文本字段将弹回到其原始位置。我已经尝试在textFieldShouldEndEditing
中保留文本字段的框架,但它会继续回到原来的位置。即使键盘重新占用,如何将视图保持在新位置?
我像这样设置动画
-(BOOL) textFieldShouldBeginEditing:(UITextField *)textField {
if ([textField isEqual: _toField] && !alreadyAnimated) {
[UIView beginAnimations:@"editFieldAnimation" context:nil];
[UIView setAnimationDuration:0.2f];
// move up to field
CGRect textFieldFrame = [_toField frame];
textFieldFrame.origin.y = 58; // default frame top margin
_toField.frame = textFieldFrame;
[UIView commitAnimations];
alreadyAnimated = YES;
}
return YES;
}