繁体   English   中英

用户开始编辑时对uitextfield进行动画处理

[英]Animating uitextfield when user begins editing

我在屏幕底部有文本字段。 当用户点击它时,文本字段应动画化,为键盘留出空间,例如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;
}

使用这样的新语法。 它行得通吗?

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

        return YES;
    }

您确实应该使用转换,在同一UIView.animateWithDuration块中您说

dock.tranform = CGAffineTransformMakeTranslation(x, y)

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

有关更多信息,请参见此处

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM