我在聊天应用程序中使用JSQMessagesViewController。当没有互联网活动时,我想隐藏inputToolbar
我试过了,但这不起作用:
self.inputToolbar.frame.size = CGSize(width: 0,height: 0)
当我设置它时,不到一秒就消失了:
self.inputToolbar.preferredDefaultHeight = 0
知道怎么做吗? 也许禁用inputToolbar也可以。
答案 0 :(得分:4)
我找到了一个没有任何副作用的更好的解决方案 您可以在JSQMessagesViewController的后代类中执行操作。
1。为您提供此基类方法:
@interface JSQMessagesViewController ()
- (void)jsq_setCollectionViewInsetsTopValue:(CGFloat)top
bottomValue:(CGFloat)bottom;
@end
2。覆盖方法的父实现(在更改大小时调用):
- (void)jsq_updateCollectionViewInsets {
CGFloat topInset = self.topLayoutGuide.length + self.topContentAdditionalInset;
CGFloat bottomInset = 0.0;
[self jsq_setCollectionViewInsetsTopValue:topInset bottomValue:bottomInset];
}
3. 编写永久隐藏输入工具栏的方法:
- (void)hideInputToolbar {
self.inputToolbar.hidden = YES;
[self jsq_updateCollectionViewInsets];
}
4. 享受!
答案 1 :(得分:3)
为什么不使用:
,而不是从superview中删除并且必须添加回子视图[self.inputToolbar setHidden:YES];
答案 2 :(得分:0)
事实证明这会奏效:
override func viewDidLoad() {
super.viewDidLoad()
self.inputToolbar.removeFromSuperview()
}