【问题标题】:In an MSStickerBrowserViewController on iOS 10, how can I tell which sticker a user selected?在 iOS 10 上的 MSStickerBrowserViewController 中,如何判断用户选择了哪个贴纸?
【发布时间】:2017-01-28 21:39:30
【问题描述】:

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

【问题讨论】:

    标签: ios ios10 imessage msstickerview


    【解决方案1】:

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

    确保手势的 shouldRecognizeSimultaneouslyWith 委托方法返回 true,以免妨碍手势。

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

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

    【讨论】:

    • 嘿 - 我正在尝试做同样的事情,并且已经实现了一个自定义类,试图按照您的建议进行操作,但无法显示我的贴纸视图,只有贴纸..您能帮帮我吗?我的问题是stackoverflow.com/questions/39760009/…
    • @BJHStudios 你知道如何以编程方式在消息中发送stickerview,我已经编写了一些代码通过插入消息发送,但同时也触发了msstickerview 的自动发送,因此它有时会自动插入调用和一些时间我的覆盖插入调用。如果您有一些示例来解决此类型问题,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 2016-06-03
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 2011-03-25
    • 1970-01-01
    相关资源
    最近更新 更多