[英]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.