在 iOS 10 上的 MSStickerBrowserViewController 中,如何判断用户选择了哪个标签?

In an MSStickerBrowserViewController on iOS 10, how can I tell which sticker a user selected?

我有一个 MSStickerBrowserViewController 的子类,它包含一个带有几十个 MSStickers 的 MSStickerBrowserView。对于分析,我们正在尝试跟踪哪些贴纸在贴纸应用程序中最受欢迎。有什么方法可以告诉用户选择了哪个 MSSticker 吗?

不幸的是,没有委托方法可以告诉我们这些信息。我通过制作自己的 MSStickerViews 的 UICollectionView 来解决这个问题,然后将点击和长按手势识别器添加到贴纸视图中。

确保手势的 shouldRecognizeSimultaneouslyWith 委托方法 returns 为真,这样他们就不会妨碍。

要跟踪贴纸是否实际发送或被选中需要更多的工作。点击和发送贴纸非常容易跟踪 - MSMessagesAppViewController 方法 didStartSending 和 didCancelSending 可以告诉您消息是从输入视图发送还是丢弃。

跟踪剥离和应用的贴纸分析比较棘手。将标签应用于对话中的上一条消息不会触发任何这些方法。到目前为止,我想出的最好办法是跟踪长按结束的位置,并对贴纸是否已发送或取消做出有根据的猜测。