如何覆盖 JSQMessagesViewController 中自定义媒体项的 mediaView 显示大小?

How to overrride mediaViewDisplaySize for a custom media item in JSQMessagesViewController?

我想在 JSQMessagesViewController 中自定义自定义媒体项的大小。我正在向 UIView 添加标签,并尝试通过设置容器视图的框架大小来设置大小。

UIView* containerView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 100, 100) ]
containerView.frame = CGRectMake(0.0f, 0.0f, 315.0f, 100.0f);
UILabel *label =  [[UILabel alloc] initWithFrame: CGRectMake(0, 0, 50, 50)];
label.text = @"vendor name";
[containerView addSubview:label];

设置帧大小适用于图像视图,但现在适用于 UIView。即使这样,在图像视图的情况下,未填充的内容也会有白色 space。 此外,我可以通过 mediaViewDisplaySize 调整所有视图的占位符大小,但我无法以不同方式自定义每个子类。

如何根据子类有选择地设置占位符视图的大小?

在您的 mediaItem 子类中,您需要覆盖 mediaViewDisplaySize。如果您需要为每种类型的 mediaItem 设置不同的大小,那么对每个类型进行子类化将是最简单的。