我在屏幕底部有文字字段。当用户点击它时,文本字段应该动画显示允许键盘的空间,例如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;
}
答案 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。