IOS 14 中未显示 JSQMessageViewController 集合单元格中的媒体项

Media Items in JSQMessageViewController's Collection cells are not showing in IOS 14

我正在使用 JSQMessageViewController,但我面临的问题是(仅在 ios14 中)我无法在设备中看到图像、视频和音频等媒体项目,尽管这些视图正在生成调试视图层次结构。请参阅下面的附图:-

调试视图层次结构截图:

这是集合视图单元格中 UIImage 的描述: >

附上屏幕截图:

您可以看到视图已生成 space 图片,但未显示!

有人遇到这个问题吗?我怎么解决这个问题。此问题发生在 iOS 14 中,它在 iOS 13 中完美运行。

您需要在 JSQMessagesMediaViewBubbleImageMasker.m
中覆盖 方法 - (void)jsq_maskView:(UIView *)view withImage:(UIImage *)image 并更改行:

view.layer.mask = imageViewMask.layer;

成为

view.maskView = imageViewMask;

我建议您为此使用类别。对我来说这就是解决方案。

为了向后兼容,我想建议如下更改以及 Vladimir 的回答:

if (@available(iOS 14.0, *)) {
    view.maskView = imageViewMask;
} else {
    view.layer.mask = imageViewMask.layer;
}