在 inputAccessoryView 上方插入子视图

Posted

技术标签:

【中文标题】在 inputAccessoryView 上方插入子视图【英文标题】:Insert subview above inputAccessoryView 【发布时间】:2016-05-06 17:55:06 【问题描述】:

我的问题是: 我有一个带有输入附件视图的 UIViewController:

class ChatViewController: UIViewController  
    override var inputAccessoryView: UIView! 
        get  return customToolbar 
    

我希望能够在 inputAccessoryView 上方添加一个子视图,如下所示:

let customView = UIView()
customView.backgroundColor = UIColor.blueColor()
self.view.insertSubview(customView, aboveSubview: self.inputAccessoryView)

但由于某些原因,inputAccessoryView 总是在最前面。

每次我想添加一个子视图(例如全屏)时,我都想过隐藏它,但这不是超级干净,每次我删除我的子视图时我都必须把它放回去。

这就是我现在所拥有的,我只是希望我的工具栏位于透明覆盖层的后面。

【问题讨论】:

仅使用 view.addSubview(customView) 怎么样,其中 view 是附件视图 @rMickeyD 好吧,这些视图之间没有联系。例如,我不希望它与 inputAccessoryView 一起移动。基本上我只想在我的ChatViewController 全屏上添加叠加层。 你有截图例子吗? @rMickeyD 刚刚添加。 【参考方案1】:

尝试将透明覆盖添加到 Objective-C 中的 keyWindow,它看起来像

[[[UIApplication sharedApplication].windows lastObject] addSubview :customView];

【讨论】:

试试 [[[UIApplication sharedApplication].windows lastObject] addSubview:customView];在翻译成swift之前。我已经检查过了,可以了

以上是关于在 inputAccessoryView 上方插入子视图的主要内容,如果未能解决你的问题,请参考以下文章

inputAccessoryView 未显示在键盘上方

更新 SwiftUI 中的 inputAccessoryView (UIViewRepresentable)

inputAccessoryView 没有在 iPhone X 上获得触摸事件

InputAccessoryView 边框?

QuickDialog 不显示“上一个”和“下一个”工具栏,因为它是 inputaccessoryview

IOS 使用输入附件视图切换预测文本视图