我有一个自定义视图,正在将inputAccessoryView
用作tableViewController
。
导航控制器内的tableViewControlleris
内的tabBarViewController
。
我设法使自定义视图正确显示为inputAccessoryView
,并显示在底部,并在聚焦时随键盘向上移动。
我的问题是,它隐藏了我的tabBar
,但我没有找到任何答案,除了2岁的未回答的问题。
我希望我的视图显示在tabBar
上方,类似于播放歌曲时的音乐应用程序,歌曲和播放按钮以及下一个按钮显示在tabBar
上方而不隐藏它。
使用Swift 4.2,Xcode 10.1,iOS 11目标,在iOS 12.1和12.1.1上进行测试
答案 0 :(得分:0)
我已经能够实现这种效果,并建立了一个名为AMKeyboardFrameTracker的框架来实现这一目标
但是首先您需要了解inputAccessoryView
的工作方式
inputAccessoryView
附加到另一个名为UITextEffectsWindow
的窗口,该窗口显示在主应用程序窗口的顶部
使用inputAccessoryView
的主要功能是与任何UIScrollView
的交互式键盘关闭效果,因为通常您无法从本地键盘通知回调中获取键盘框架
但是使用AMKeyboardFrameTracker,我已经可以通过观察inputAccessoryView's
superview
的帧变化来获取键盘框架,因此它仍然使用inputAccessoryView
,但是没有用户交互的空视图
Github repo中有一个示例,您可以下载并试用
注意
在示例应用程序中,如果您想使用ViewController
,则使用普通的TableViewController
而不是TableViewController
,您仍然可以通过将CustomView添加到{{1} } navigationController's