隐藏JSQMessagesViewController中的inputToolbar

时间:2015-04-24 16:43:32

标签: ios chat jsqmessagesviewcontroller

我在聊天应用程序中使用JSQMessagesViewController。当没有互联网活动时,我想隐藏inputToolbar

我试过了,但这不起作用:

    self.inputToolbar.frame.size = CGSize(width: 0,height: 0)

当我设置它时,不到一秒就消失了:

    self.inputToolbar.preferredDefaultHeight = 0

知道怎么做吗? 也许禁用inputToolbar也可以。

3 个答案:

答案 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()
}