问题标签 [msstickerview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
983 浏览

ios - 在 iOS 10 上的 MSStickerBrowserViewController 中,如何判断用户选择了哪个贴纸?

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

0 投票
2 回答
672 浏览

ios - iOS 10 Swift 以编程方式从 Stickers.xcstickers 获取贴纸

我有一个贴纸包Stickers.xcstickers,里面有一些贴纸。我想以编程方式获取其中一个贴纸并将其放入MSStickerView我在UICollectionViewCell. 我知道UIImage这很容易,你可以做到

MSSticker 是否有与此等价的功能?

let mySticker = MSSticker(named: "mySticker")显然行不通。

有,MSSticker(contentsOfFileURL: URL, localizedDescription: String但我不确定如何以与 UIImage 类似的方式正确实现。

谢谢。

0 投票
1 回答
1176 浏览

ios - 如何快速将贴纸视图添加到浏览器视图?

好吧,就像每个人一样,我是 Swift 中的 ms 贴纸的新手,但我试图弄清楚 mssticker 和 msstickerview 的目的/区别。我已经阅读了这里的 API https://developer.apple.com/reference/messages/msstickerview/1648434-sticker但找不到这个相对简单问题的答案 - 似乎你只能将 MSStickers (不是 StickerViews )添加到 MSStickerBrowserView ,这是显示它们的唯一方法。但是,我需要添加 StickerVIEWS,因为我有一个正在尝试实现的自定义贴纸视图类。

我的贴纸被添加到我的浏览器视图中:

如您所见,我为每个贴纸创建了一个贴纸和一个贴纸视图 - 我的贴纸存储在stickers数组中,贴纸视图存储在stickerViews数组中。

以下是浏览器的填充方式:

我尝试将这些方法的返回类型更改为 StickerView 并返回stickerView 数组

然而,这让我得到以下错误:

messagesviewcontroller 不符合协议 msstickerbrowserviewdatasource

因为所需的功能没有像以前那样实现。一个如何显示贴纸视图?我究竟做错了什么?

0 投票
2 回答
808 浏览

ios - 触发点击 MSSticker 或以编程方式查看?

好吧,我已经查看了如何以编程方式触发 UIView 的轻击手势识别器和类似的问题,但找不到我要查找的内容。我正在构建一个 iMessage 应用程序扩展,并且需要以编程方式触发 MSSticker 上的点击事件。

我已经使用以下类制作了自定义 MSStickerViews,该类检测何时被按下和/或点击,然后触发另一个功能,但是我不知道如何实际模拟这些点击,以便将贴纸放在输入字段中:

只调用上面的一个点击函数不起作用的原因是我不需要用点击触发任何特定的函数 - 我只需要在 MSStickerView 中的 MSSticker 上创建一个假点击,这样它就会被放入输入字段。我不知道该怎么做。

我像这样创建我的 MSStickerViews 并将它们放在集合视图中,但是以编程方式点击集合视图单元格没有任何作用(我试过):

我有一种感觉可能类似于(伪代码)

是正确的,但 MSStickerView 没有.sendActionForEvent

生无可恋。如何创建假水龙头?

0 投票
3 回答
325 浏览

ios - MSStickerBrowserView 贴纸超出框架

我正在尝试为 iOS 10 的消息扩展动态加载贴纸。我已成功加载这些图标;但是,它们未能正确限制消息应用程序的比例。

在消息扩展的紧凑视图中,它有一个页脚。这可以在这里看到: 在此处输入图像描述

在消息扩展的展开视图中,它有一个标题。 在此处输入图像描述

我正在通过 MSStickerBrowserView 的 MSStickerBrowserView 的子视图加载这些贴纸。我正在覆盖 numberOfStickers 和stickerBrowserView 的超类方法来加载我的图像。

据我所知,MSStickerBrowserView 只是 UICollectionView 的包装器。

无论如何,在加载贴纸后,它们不会被限制在页眉和页脚中。我在下面附上了我的意思的GIF:

在此处输入图像描述

如您所见,在紧凑视图中,最后一行贴纸位于页脚下方。因此,在展开视图中,顶行贴纸位于标题下方。

作为一个实验,我实现了相同的动态贴纸系统,但使用了实际的 UICollectionViewController 和 UICollectionView(而不是 MSStickerBrowser 包装器),并实现了相同的效果。此外,我试图为此创建一个自定义布局,但它产生了相同的结果。

我宁愿坚持使用 MSStickerBrowserView,因为它已经为此目的而制作;但是,如果您看到 UICollectionView 更合适,我愿意更改。

请注意,使用 MSStickerBrowserViewController 和 View 时,UICollectionView 似乎是以编程方式创建的,因此情节提要约束不可用,并且我无法将任何编程约束应用于视图的单元格。

我不太确定如何解决这个问题,并且会喜欢任何建议。

0 投票
1 回答
1696 浏览

ios - 如何为 iMessage Sticker App Grid Sticker 提供不同尺寸

我创建了一个 iOS iMessage 贴纸应用程序,根据苹果文档,我应该能够以三种不同尺寸之一显示贴纸。

然而,无论我制作什么尺寸的贴纸图像(300 像素 x 300 像素、408 像素 x 408 像素、618 像素 x 618 像素),它们都只会显示为中间网格选项,每行三个贴纸。有谁知道如何解决这个问题,也许我错过了一些简单的东西?

关于这个主题的文档很少,因为它是相当新的。谢谢您的帮助。

贴纸尺码表

文档链接:https ://developer.apple.com/ios/human-interface-guidelines/extensions/messaging/

0 投票
0 回答
119 浏览

ios - MSStickerView 在 iMessageExtension 中随机引发 NSInvalidArgumentException

有时,显然是随机的,在我的 IMessageExtension 中使用 MSStickerView 时,会引发以下错误:

它似乎是 MSStickerView 中的一个错误,但我没有成功确定是什么导致它和/或捕捉它并救援(因为它似乎是关于异步执行的私有方法)

有人知道会发生什么吗?

这是堆栈跟踪:

0 投票
2 回答
298 浏览

ios - 如何阻止在 iMessage 中选择贴纸

我正在尝试制作一个非常简单的贴纸 iMessage 应用程序,当用户点击一些贴纸时,他们会被建议进行应用内购买。

我有一个实现UIViewController,UICollectionViewDelegate的自定义视图控制器UICollectionViewDataSource(来源:https ://github.com/jelenakrmar/customStickerApp )。

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

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

但它不起作用

也许我需要在' '和' '中扩展MSStickerView并做一些事情。didTapdidLongPress

有没有人在选择贴纸时有一些覆盖 iMessage 行为的经验?

0 投票
0 回答
332 浏览

ios - 如何将 MSStickerView 缩放到 MSSticker 的大小?

我的 iMessage 扩展程序目前正在根据文本输入生成图像,并将它们作为 MSStickerView 中的贴纸呈现给用户。用户可以通过滑动条操纵贴纸的大小。为此,我正在缩放生成的图像,添加贴纸,然后使用 sizeToFit() 调整 MSStickerView 的大小。

问题是 StickerView 和 Sticker 显示的尺寸只会减小,但只有在 Extension 视图切换时才会增加(从大到小或反之亦然)。我知道该视图使用缓存的图像,这就是为什么我要根据文本输入和大小使用名称保存图像的原因。但是,我希望使用其他一些缓存系统,这会阻止我使用更大的图像。

有没有办法让我以编程方式触发重新加载,类似于切换视图时发生的重新加载,或者只是手动调整 MSStickerView 的大小?

用户界面的图像:

用户界面

0 投票
2 回答
1553 浏览

android - 如何在android中的长按监听器上编辑stickerview文本

我正在开发贴纸应用程序,我可以在其中向 Stickerview 添加文本。我可以翻转、旋转和删除贴纸文本。现在我想在长按stickerText时编辑StickerView的文本。这是将文本标签添加到屏幕的代码。