首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在iMessage中阻止标签的选择

如何在iMessage中阻止标签的选择
EN

Stack Overflow用户
提问于 2017-07-01 15:34:43
回答 2查看 312关注 0票数 1

我试图制作一个非常简单的贴纸iMessage应用程序,当用户点击一些贴纸时,用户会被建议在应用程序中购买。

我有一个自定义视图控制器,它实现了UIViewControllerUICollectionViewDelegateUICollectionViewDataSource (源:https://github.com/jelenakrmar/customStickerApp)。

我现在试图覆盖默认行为时,用户点击或剥离贴纸。

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

代码语言:javascript
复制
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
// open the in-app purchase window
}

但这不管用

也许我需要扩展MSStickerView,并在“didTap”和“didLongPress”中做一些事情。

在选择贴纸时,是否有人有推翻iMessage行为的经验?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-01 20:30:10

看起来,如果您的UICollectionViewCell有一个MSStickerView (或者可能导入Messages框架),则不会调用didSelectItemAt委托。

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

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

票数 0
EN

Stack Overflow用户

发布于 2017-10-12 06:59:23

我在类似的情况下,有一个UICollectionController加载贴纸通过MSStickerView在我的UICollectionViewCell。

我对UICollectionViewCell进行了子类化,并在单元格contentView上放置了一个MSStickerView。在此之后,我通过以下方式禁用了触摸:

代码语言:javascript
复制
(stickerView)?.isUserInteractionEnabled = false

collectionViewController函数didSelectItemAt现在可以工作了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44862637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档