来源:即时通讯网 - 即时通讯开发者社区!
WechatIMG407.jpeg (133.34 KB, 下载次数: 1565)
下载附件 保存到相册
4 年前 上传
轻量级开源移动端即时通讯框架。
快速入门 / 性能 / 指南 / 提问
轻量级Web端即时通讯框架。
详细介绍 / 精编源码 / 手册教程
移动端实时音视频框架。
详细介绍 / 性能测试 / 安装体验
基于MobileIMSDK的移动IM系统。
详细介绍 / 产品截图 / 安装体验
一套产品级Web端IM系统。
详细介绍 / 产品截图 / 演示视频
引用此评论
引用:JackJiang 发表于 2020 多谢反馈,问题已经记录了,我会安排人来优化的。
- (void)keyboardController:(JSQMessagesKeyboardController *)keyboardController keyboardDidChangeFrame:(CGRect)keyboardFrame { if (![self.inputToolbar.contentView.textView isFirstResponder] && self.toolbarBottomLayoutGuide.constant == 0.0) { return; } CGFloat heightFromBottom = CGRectGetMaxY(self.collectionView.frame) - CGRectGetMinY(keyboardFrame); heightFromBottom = MAX(0.0, heightFromBottom); // 当前是否是关闭键盘(YES表示是,否则不是) BOOL toHide = (heightFromBottom == 0); if(toHide) { // HACK:【隐藏键盘时,如果发现当前的“更多”模式不为“无”时,就设置“更多”功能区的显示】: if(self.bottomBoxContentViewState != RBBottomBoxContentViewStateNone) { heightFromBottom = k_RBBottomBoxViewHeight; } } else { // 当前“更多”功能显示模式和软键盘(文本输入模式)是互斥的,打开了文本输入则强制切换“更多”功能显示模式为“无”(即不显示它们)【1/2】 self.bottomBoxContentViewState = RBBottomBoxContentViewStateNone; // 留海屏的安全区下方衬距 CGFloat safeAreaInsets_bottom = [self getSafeAreaInsets_bottom]; heightFromBottom = heightFromBottom - safeAreaInsets_bottom; } [self jsq_setToolbarBottomLayoutGuideConstant:heightFromBottom]; // 本次是打开键盘时(也就是准备输入文字消息时哦) if(!toHide) { // 主动将消息列表滚动到最后一行,以便用户看到 [self scrollToBottomAnimated:YES]; } } - (CGFloat)getSafeAreaInsets_bottom { if (@available(iOS 11.0, *)) return [[UIApplication sharedApplication] delegate].window.safeAreaInsets.bottom; return 0; }
WX20201108-000702@2x.png (38.21 KB, 下载次数: 1621)
精华主题数超过100个。
连续任职达2年以上的合格正式版主
为论区做出突出贡献的开发者、版主等。
Copyright © 2014-2024 即时通讯网 - 即时通讯开发者社区 / 版本 V4.4
苏州网际时代信息科技有限公司 (苏ICP备16005070号-1)
Processed in 0.125000 second(s), 45 queries , Gzip On.