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”键盘转换所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)