我试图制作一个非常简单的贴纸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行为的经验?
发布于 2017-10-01 20:30:10
看起来,如果您的UICollectionViewCell有一个MSStickerView (或者可能导入Messages框架),则不会调用didSelectItemAt委托。
例如,如果我想要一个带有免费和锁定标签的粘贴扩展,我将在我的UICollectionView中创建两个不同的单元格。一个有一个MSStickerView,第二个只有一个UIImageView。如果点击了一个自由贴纸,iOS将处理所有不被触发的UICollectionView委托。但是,如果用户点击锁定的贴纸,委托就会触发,并且可以由didSelectItemAt委托处理。
我还没有找到任何指向这一点的文档。
发布于 2017-10-12 06:59:23
我在类似的情况下,有一个UICollectionController加载贴纸通过MSStickerView在我的UICollectionViewCell。
我对UICollectionViewCell进行了子类化,并在单元格contentView上放置了一个MSStickerView。在此之后,我通过以下方式禁用了触摸:
(stickerView)?.isUserInteractionEnabled = falsecollectionViewController函数didSelectItemAt现在可以工作了。
https://stackoverflow.com/questions/44862637
复制相似问题