用户开始编辑时动画uitextfield

时间:2015-06-05 17:04:33

标签: ios objective-c animation uitextfield

我在屏幕底部有文字字段。当用户点击它时,文本字段应该动画显示允许键盘的空间,例如iOS消息应用程序。无论如何,当发生这种情况时,动画没有正确发生。它不是去我指定的地方(160,410),而是离开屏幕然后再向右然后转到我指定的位置。这导致它看起来延迟并且键盘首先上升。这是我的代码:

- (void)viewDidLoad {
    [super viewDidLoad];

    textField1.delegate = self;
}

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
[UIView animateWithDuration:0.5 animations:^
 {
     [dock setCenter:CGPointMake(160, 410)];
 }
                 completion:^(BOOL finished)
 {
     [dock setCenter:CGPointMake(160, 410)];
 }];

return YES;
}

2 个答案:

答案 0 :(得分:1)

使用这样的新语法。它有用吗?

   - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
        [UIView animateWithDuration:0.4 animations:^
        {
            [dock setCenter:CGPointMake(160, 410)];
        }
    completion:^(BOOL finished)
        {
            //Implement completion method here.
        }];

        return YES;
    }

答案 1 :(得分:1)

你应该真正使用变换,你在同一个UIView.animateWithDuration块中说

dock.tranform = CGAffineTransformMakeTranslation(x, y)

其中x和y是您希望文档移动的距离。

有关详细信息,请参阅Here