Ios 如何阻止在iMessage中选择标签

Ios 如何阻止在iMessage中选择标签,ios,imessage,msstickerview,Ios,Imessage,Msstickerview,我正在尝试制作一个非常简单的贴纸iMessage应用程序,当用户点击一些贴纸时,建议他们在应用程序中购买 我有一个自定义视图控制器,它实现了UIViewController,UICollectionViewDelegate,UICollectionViewDataSource(源代码:) 我现在试图覆盖用户点击或剥标签时的默认行为 我的第一次尝试是在collectionView级别 func collectionView(_ collectionView: UICollectionView, d

我正在尝试制作一个非常简单的贴纸iMessage应用程序,当用户点击一些贴纸时,建议他们在应用程序中购买

我有一个自定义视图控制器,它实现了
UIViewController
UICollectionViewDelegate
UICollectionViewDataSource
(源代码:)

我现在试图覆盖用户点击或剥标签时的默认行为

我的第一次尝试是在collectionView级别

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
// open the in-app purchase window
}
但它不起作用

也许我需要扩展
MSStickerView
,并在“
didTap
”和“
didLongPress
”中执行一些操作


是否有人在选择贴纸时具有覆盖iMessage行为的经验?

如果您的
UICollectionViewCell
具有
MSStickerView
(或可能导入
消息
框架),则不会调用
didSelectItemAt
委托

例如,如果我想要一个带有自由和锁定标签的标签扩展,我会在我的
UICollectionView
中创建两个不同的单元格。一个具有
MSStickerView
,而第二个仅具有
UIImageView
。如果点击了一个免费标签,iOS将处理所有未被激发的
UICollectionView
委托。但是,如果用户点击锁定的标签,代理将被触发,并可由
didSelectItemAt
代理处理


我还没有找到任何指向这一点的文档。

我也有类似的情况,我的UICollectionViewCell中有一个UICollectionController通过MSStickerView加载标签

我对UICollectionViewCell进行了子类化,并在cell contentView上放置了一个MSStickerView。在此之后,我禁用了触摸方式:

(stickerView)?.isUserInteractionEnabled = false

collectionViewController功能现在可以运行了。

是的,我得出了相同的结论:您需要两种不同类型的单元格,一种带有MSStickerView,另一种带有其他内容(例如UIImageView)。问题是无法在UIImageView中设置apng动画。我试图使用第三方库来实现这一点,但它破坏了性能,应用程序被拒绝。我最终使用了UIImageView,当然这并不理想(用户在购买之前无法看到动画贴纸)。我认为你的回答是正确的。