animationUITextInput的textInputView

UIKit文本input组件,如UITextViewUITextField有一个属性inputView添加自定义键盘。 我有两个与此有关的问题。

  1. 如果键盘当前可见并且属性设置为新的input视图,则不会发生任何事情。 辞职和重获第一响应者状态刷新input并显示新视图。 这是做这件事的最好方法吗? 如果是这样,它可能会回答我更大的问题

  2. 是否可以animation两个input视图之间的转换?

来自UIResponder文档:

需要自定义视图来收集用户input的响应者对象应该将此属性重新声明为readwrite,并使用它来pipe理其自定义input视图。 当接收者随后成为第一响应者时,响应者基础设施自动呈现指定的input视图。 同样,当视图退出第一个响应者状态时,响应者基础结构会自动closures指定的视图。

所以不幸的是,答案是1,是2。

  1. 其实有一个方法干净地做到这一点: UIResponderreloadInputViews ,从iOS 3.2中可用!

  2. 我认为你可以用一些额外的工作来animation:

    • 创build一个比键盘窗口更高的UIWindowLevel清晰的背景窗口。
    • 将您的自定义键盘添加到该位置并将其框架animation化。
    • 然后将其设置为您的文本input的inputView并像您一样刷新第一个响应者。

您的自定义键盘会将其父视图从您的自定义窗口更改为键盘,但希望用户不会注意;)