更改JSQMessagesViewController的帧

时间:2016-06-21 10:21:43

标签: ios swift jsqmessagesviewcontroller

我遇到了一个我无法解决的问题。

我已将JSQMessages导入我的项目并将其放入我的viewController UIView,其中UIImage内部有Navigation Bar,其行为类似于tabBar。我也有一个JSQMessagesViewController但是当我推动我的segue时,一切都消失了,以获得正常的JSQMessagesViewController视图。

我想要的是constraints帧让我的顶部和机器人栏可见。我尝试从collectionView笔尖更改JSQMessagesViewController的{​​{1}}但是没有成功。

有办法吗?我对限制和东西有点新闻,但我认为我做得很好,如果有人可以帮助我。

尝试Abhay Singh Naurang解决方案,我写道:

class SendNewMessageViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()

    let messageView = JSQMessagesViewController()
    messageView.senderId = "test"
    messageView.senderDisplayName = "bryan"
    let navigationBarHeight = 66
    let bottomTabBarHeight = 44
    messageView.view.frame = CGRectMake(0, CGFloat(navigationBarHeight), self.view.frame.width, self.view.frame.height - CGFloat(bottomTabBarHeight) - CGFloat(navigationBarHeight));
    self.view.addSubview(messageView.view)
}

框架似乎是正确的,但我仍然失去了tabBar(意味着它消失了,tabBar的方格变为白色,键盘似乎没有响应而textField没有移动根据键盘遗憾地说。

1 个答案:

答案 0 :(得分:0)

您需要在viewcontroller上创建JSQMessagesViewController实例,您可以在其上添加JSQMessagesViewController视图,并且可以设置JSQMessagesViewController视图的框架。  例如,你有UserListViewController,你正在推送到ChatViewController,以便在ChatViewController上有

- (void)viewDidLoad {
    [super viewDidLoad];
    JSQMessagesViewController *objcMessageVC = [JSQMessagesViewController alloc]init];
    CGFloat navigationBarHeight = 64;
    CGFloat bottomTabBarHeight =40;
    objcMessageVC.view.frame = CGRectMake(0,64,CGRectGetWidth(self.view.frame),CGRectHeight(self.view.frame)-navigationBarHeight-bottomTabBarHeight);
    [self addSubview:objcMessageVC.view];
}