我正在尝试制作一个非常简单的贴纸iMessage应用程序,用户在点击某些贴纸时建议进行应用内购买。
我有一个自定义视图控制器,可以实现UIViewController
,UICollectionViewDelegate
,UICollectionViewDataSource
(来源:https://github.com/jelenakrmar/customStickerApp)。
我正试图在用户点击或剥离贴纸时覆盖默认行为。
我的第一次尝试是在collectionView
的级别func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
// open the in-app purchase window
}
但它不起作用
也许我需要延长MSStickerView
并在“didTap
”和“didLongPress
”中执行某些操作。
有没有人在选择贴纸时有一些覆盖iMessage行为的经验?
答案 0 :(得分:1)
我处于类似的情况,并通过我的UICollectionViewCell中的MSStickerView加载UICollectionController贴纸。
我将UICollectionViewCell子类化并将MSStickerView放到单元格contentView上。在此之后,我禁用了触摸:
didSelectItemAt
collectionViewController函数print(x) if x<2**31 else x-2**32
现在有效。
答案 1 :(得分:0)
好像,如果您的UICollectionViewCell
有MSStickerView
(或可能是导入Messages
框架),则didSelectItemAt
委托不会被调用。
例如,如果我想要一个带有免费和锁定贴纸的贴纸扩展,我会在UICollectionView
中创建两个不同的单元格。一个有MSStickerView
,第二个只有UIImageView
。如果点击了免费贴纸,iOS将处理所有UICollectionView
代表未被解雇的内容。但是,如果用户点击锁定的贴纸,代表将会触发,并且可由didSelectItemAt
代表处理。
我还没有发现任何指向此的文档。