XZ_WeChat icon indicating copy to clipboard operation
XZ_WeChat copied to clipboard

消息中文字内容的有表情的消息宽高计算不对

Open linsaw opened this issue 8 years ago • 10 comments

消息中文字内容的有表情的消息宽高计算不对,看了你代码,是直接计算原字符串的。

linsaw avatar Feb 13 '17 02:02 linsaw

不会影响使用

corderguo avatar Feb 14 '17 05:02 corderguo

@corderguo 能留个QQ 或者邮箱吗? 我公司自己开发IM 对于数据本地化这部分的逻辑想请教你

HJ-StevenSun avatar Feb 15 '17 07:02 HJ-StevenSun

还有就是楼主可以早点把数据本地化保存的逻辑和UI的配合这些代码早点整理出来可以吧。谢谢了

HJ-StevenSun avatar Feb 15 '17 08:02 HJ-StevenSun

宽高计算问题是因为项目中的bubbleF是根据原文字进行计算的,而实际上展示的时候用的是NSAttributedString,这个时候bubbleF之类的外观已经计算完成了。 原计算方式:CGSize chateLabelSize = [model.message.content sizeWithMaxWidth:chatLabelMax andFont:MessageFont]; 一个粗糙的解决方式: UIFont *setFont = [UIFont systemFontOfSize:16.0]; NSMutableAttributedString *attrContent = [ICFaceManager transferMessageString:model.message.content font:setFont lineHeight:setFont.lineHeight]; CGSize size = CGSizeMake(chatLabelMax, 999); CGRect chateLabelRect = [attrContent boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil]; CGSize chateLabelSize = chateLabelRect.size; 之所以粗糙,在于UIfont直接写死了,而不是在原label获得。这个时候貌似无法直接获得label配置的,所以完美的方法需要小改一下架构。

flashermaster avatar Sep 01 '17 09:09 flashermaster

纯表情, 选择第二种表情的时候, 表情的背景图的高度和宽度不一致, @corderguo 什么时候有空可以修复一下这个bug吗。 。我自己改了一下还是没改好,

xieguangming avatar Sep 12 '17 10:09 xieguangming

@corderguo

xieguangming avatar Sep 12 '17 10:09 xieguangming

你的这个修改, 右边的聊天背景是正常的, 左边的宽度还是不对, 宽了。 @lashermaster

xieguangming avatar Sep 18 '17 06:09 xieguangming

左边的也要同样修改啊。isSender不是有个if分叉吗?

flashermaster avatar Sep 18 '17 06:09 flashermaster

搞定了,

xieguangming avatar Sep 19 '17 06:09 xieguangming

键盘跳动问题,在汉字键盘和表情键盘切换的时候,键盘动画很奇怪的跳动动画,怎么解决

Andrew5 avatar Apr 29 '21 09:04 Andrew5