如何使InputAccessoryView出现在UITabBarViewController的选项卡上方?

use*_*277 5 uitabbarcontroller uitabbar ios inputaccessoryview swift

我有一个自定义视图,用于inputAccessoryView我的tableViewController.

位于导航控制器内部的tableViewControllerisa 内部。tabBarViewController

我设法使自定义视图正确显示为inputAccessoryView,出现在底部,并且当聚焦时它会随键盘一起上升。

我的问题是它隐藏了我的tabBar,我搜索了但除了一个 2 年前未回答的问题之外找不到任何东西。我希望我的视图出现在 上方tabBar,类似于播放歌曲时的音乐应用程序,歌曲和播放按钮以及下一个按钮出现在上方而tabBar不是隐藏它。

使用 swift 4.2、Xcode 10.1、iOS 11 目标,在 iOS 12.1 和 12.1.1 上进行测试

Amr*_*med 3

我已经能够实现这种效果,并制作了一个名为AMKeyboardFrameTracker 的框架来做到这一点

AMKeyboardFrameTracker.gif

但首先你需要了解它是如何inputAccessoryView工作的

inputAccessoryView附加到另一个名UITextEffectsWindow为此窗口的窗口,显示在主应用程序窗口的顶部

使用的主要功能inputAccessoryView是交互式键盘解除效果,UIScrollView因为通常您无法从本机键盘通知回调中获取键盘框架

但是使用AMKeyboardFrameTracker,我已经能够inputAccessoryView's superview通过观察其框架变化来获取键盘框架,因此它仍在使用,inputAccessoryView但具有没有用户交互的空视图

Github 存储库中有一个示例,您可以下载并尝试一下

请注意, 在示例应用程序中,我使用的是普通ViewController而不是 a,TableViewController如果您想使用 a,TableViewController您仍然可以通过将 CustomView 添加到navigationController's view