ios – 动画“inputView”键盘转换

ios – 动画“inputView”键盘转换,第1张

概述UITextField具有 inputView属性,可用于指定自定义键盘.将此清除为nil可提供默认键盘. 如果UITextField是第一个响应者,则在设置inputView时不会发生任何更改,但通过调用[textField reloadInputView],键盘更改将立即发生. 我希望能够在两种不同的输入方法之间切换.触发它的接口将是一个UISegmentedView安装为UITextFiel UITextFIEld具有 inputView属性,可用于指定自定义键盘.将此清除为nil可提供默认键盘.

如果UITextFIEld是第一个响应者,则在设置inputVIEw时不会发生任何更改,但通过调用[textField reloadInputView],键盘更改将立即发生.

我希望能够在两种不同的输入方法之间切换.触发它的接口将是一个UISegmentedVIEw安装为UITextFIEld的inputAccessoryVIEw.

我有这个工作,但过渡是非常突然的.部分原因是我在两者之间转换的微调器和键盘在iPad上有不同的尺寸.

我发现我在reloadinputVIEw周围包装动画块,我将在两个键盘的视图帧之间获得平滑的动画.不幸的是,有一种视觉抖动,因为过渡不是动画:

[UIVIEw animateWithDuration: 0.3 animations:^(){    [firstResponder reloadinputVIEws];}];

或者,如果我在转换中包装重新加载,我可以得到一个很好的交叉淡入淡出,但我没有得到平滑的帧更改:

[UIVIEw TransitionWithVIEw: keyboarDWindow                  duration: 0.3                   options: UIVIEwAnimationoptionTransitionCrossdissolve                animations: ^(){ [firstResponder reloadinputVIEws]; }                completion: nil];

(在第二个代码块中,我从self.window获得了keyboarDWindow,因为这个视图是作为UITextFIEld的inputAccessoryVIEw安装的,它最终嵌套在键盘的窗口下.)

我想要的是动画和转换输入视图重新加载.我尝试将重新加载放在动画的过渡中,我也尝试将重新加载放在过渡中的动画中 – 似乎都没有帮助.

有任何想法吗?谢谢!

解决方法 我能够通过以下方式成功动画对inputVIEw的更改,而不会出现任何故障:

>将新的inputVIEw添加为现有inputVIEw的子视图,然后再添加
>在完成动画选择后,将UIControl的inputVIEw切换到自定义inputVIEw.

作为一个例子,这里是如何快速淡入自定义inputVIEw:

//start the vIEw as invisible_custominputVIEw.Alpha = 0.0f;//add the custom inputVIEw as a subvIEw of the existing inputVIEw[self.inputVIEw addSubvIEw:_custominputVIEw];//animate the opacity change[UIVIEw animateWithDuration:0.25f                       delay:0.0f                    options:UIVIEwAnimationoptionCurveEaseInOut                     animations:^{                         _custominputVIEw.Alpha = 1.0f;                     } completion:^(BOol finished) {                         //switch the UIControl's inputVIEw                         self.inputVIEw = _custominputVIEw;                     }];
总结

以上是内存溢出为你收集整理的ios – 动画“inputView”键盘转换全部内容,希望文章能够帮你解决ios – 动画“inputView”键盘转换所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1102875.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存