Ios 如何阻止在iMessage中选择标签
我正在尝试制作一个非常简单的贴纸iMessage应用程序,当用户点击一些贴纸时,建议他们在应用程序中购买 我有一个自定义视图控制器,它实现了Ios 如何阻止在iMessage中选择标签,ios,imessage,msstickerview,Ios,Imessage,Msstickerview,我正在尝试制作一个非常简单的贴纸iMessage应用程序,当用户点击一些贴纸时,建议他们在应用程序中购买 我有一个自定义视图控制器,它实现了UIViewController,UICollectionViewDelegate,UICollectionViewDataSource(源代码:) 我现在试图覆盖用户点击或剥标签时的默认行为 我的第一次尝试是在collectionView级别 func collectionView(_ collectionView: UICollectionView, d
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,当然这并不理想(用户在购买之前无法看到动画贴纸)。我认为你的回答是正确的。