我已经尝试过JSQMessageViewController在iOS 11模拟器中的快速示例。结果如下:屏幕截图
我试过使用安全区域边距和修改工具栏约束,但仍然没有区别。工具栏似乎在UIWindow之外(而不是UITextEffectsWindow)。有什么解决办法吗?
发布于 2017-10-25 02:47:50
伙计们,我想通了!只需将以下代码放入JSQMessagesInputToolbar.m中即可。似乎输入工具栏被放置在自己的窗口中,您需要单独访问它的窗口。
-(void) didMoveToWindow{
[super didMoveToWindow];
if (@available(iOS 11.0, *)) {
[[self bottomAnchor] constraintLessThanOrEqualToSystemSpacingBelowAnchor:self.window.safeAreaLayoutGuide.bottomAnchor multiplier:1.0].active = YES;
}
}发布于 2018-03-13 12:36:24
只需为JSQMessagesInputToolbar添加一个扩展
extension JSQMessagesInputToolbar {
override open func didMoveToWindow() {
super.didMoveToWindow()
if #available(iOS 11.0, *), let window = self.window {
let anchor = window.safeAreaLayoutGuide.bottomAnchor
bottomAnchor.constraintLessThanOrEqualToSystemSpacingBelow(anchor, multiplier: 1.0).isActive = true
}
}
}发布于 2017-11-08 09:53:46
我提议一个基于JSQ最新develop分支提交的固定分叉。
它正在使用didMoveToWindow解决方案。不理想,但值得尝试,同时等待苹果的答案,关于inputAccessoryView的安全区布局指南附件,或任何其他更好的解决办法。
您可以将其添加到您的Podfile中,替换前面的JSQ行:
pod 'JSQMessagesViewController', :git => 'https://github.com/Tulleb/JSQMessagesViewController.git', :branch => 'develop', :inhibit_warnings => truehttps://stackoverflow.com/questions/46439975
复制相似问题