0

我的主控制器是 a并在其编辑状态更改时为 a 设置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;
}
4

0 回答 0