热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jsqmessagesviewcontrollerinputToolBarIOS11iphoneXSwift4

如何解决《jsqmessagesviewcontrollerinputToolBarIOS11iphoneXSwift4》经验,为你挑选了4个好方法。

我知道这个库已被弃用,但是有没有人用inputToolBar和iPhone X解决了这个问题?目前,inputToolBar已部分覆盖.请查看附加的图像.

在此输入图像描述

提前致谢



1> J-Bossi..:

如果您不想更改pod中的代码并使用更像swifty的扩展,您可以使用以下代码:

extension JSQMessagesInputToolbar {
    override open func didMoveToWindow() {
        super.didMoveToWindow()
        guard let window = window else { return }
        if #available(iOS 11.0, *) {
            let anchor = window.safeAreaLayoutGuide.bottomAnchor
            bottomAnchor.constraintLessThanOrEqualToSystemSpacingBelow(anchor, multiplier: 1.0).isActive = true
        }
    }
}


`静态成员'activate'不能用于'NSLayoutConstraint'类型错误的实例.替换为`.isActive = true`

2> dmathewwws..:

更新了Samson的答案,因为当我离开屏幕时会崩溃.在设置约束之前检查以确保它不是nil.

-(void) didMoveToWindow{
    [super didMoveToWindow];
    if (@available(iOS 11.0, *)) {

        UILayoutGuide *layoutGuide = self.window.safeAreaLayoutGuide;

        if (layoutGuide != nil){
           [[self bottomAnchor] constraintLessThanOrEqualToSystemSpacingBelowAnchor:layoutGuide.bottomAnchor multiplier:1.0].active = YES;
        }

    }
}



3> Samson Wong..:

伙计们,我是问jsqmessageviewcontroller ios11工具栏的人,我已经弄清楚了!

只需将以下代码放入JSQMessagesInputToolbar.m中。似乎inputtoolbar位于其自己的窗口中,您需要单独访问其窗口。

-(void) didMoveToWindow{
[super didMoveToWindow];
 if (@available(iOS 11.0, *)) {
     [[self bottomAnchor] constraintLessThanOrEqualToSystemSpacingBelowAnchor:self.window.safeAreaLayoutGuide.bottomAnchor multiplier:1.0].active = YES;
     }
}



4> 小智..:

我认为这应该是通过以下步骤解决此问题的更好方法:
1.打开JSQMessagesViewController.xib。2
.将集合视图的底部布局约束向下拖动到名为collectionViewBottomLayoutGuide的JSQMessagesViewController.m中。
3.将此代码添加到JSQMessagesViewController.m的底部。

- (void)viewSafeAreaInsetsDidChange {
    [super viewSafeAreaInsetsDidChange];
    self.toolbarBottomLayoutGuide.active = NO;
    self.toolbarBottomLayoutGuide = [NSLayoutConstraint constraintWithItem:self.view.safeAreaLayoutGuide attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.inputToolbar attribute:NSLayoutAttributeBottom multiplier:1.0f constant:0.0f];
    self.toolbarBottomLayoutGuide.active = YES;
    self.collectionViewBottomLayoutGuide.active = NO;
    self.collectiOnViewBottomLayoutGuide= [NSLayoutConstraint constraintWithItem:self.view.safeAreaLayoutGuide attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.collectionView attribute:NSLayoutAttributeBottom multiplier:1.0f constant:0.0f];
    self.collectionViewBottomLayoutGuide.active = YES;
}


推荐阅读
author-avatar
莱茵河泮的独奏_586
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有