3

当我按照文档建议通过将 MSStickerBrowserViewController 子类嵌入到容器视图(使用情节提要)中来创建它时,我似乎没有机会设置stickerSize。Sticker Browser VC 使用 init(coder:) 进行初始化,我无法看到覆盖 get-only 属性stickerSize。我只能得到stickerSize = MSStickerSize.regular。

我也没有在界面构建器中看到任何用于配置属性的控件,尽管文档说“您还可以自定义浏览器内贴纸的大小”。

多亏了 shallowThought,我看到 MSStickerBrowserViewController 上有一个可用的初始化程序 init(stickerSize: MSStickerSize),但到目前为止,我一直无法找到在使用情节提要并覆盖所需的 init(coder:) 初始化程序时触发该初始化程序的方法。

我错过了什么吗?

谢谢!

4

2 回答 2

5

这对我有用:我添加stickerSize到身份检查器的“用户定义的运行时属性”部分。

在此示例中,PetStickerBrowserViewController 是MSBrowserStickerViewController. stickerSize设置为 0,对应于MSStickerSize.small

在运行时,当从情节提要中实例化视图控制器时,其stickerSize属性设置为.small. 使用 1 表示.regular(默认值),使用 2 表示.large.

在此处输入图像描述

于 2017-06-03T17:25:38.397 回答
1

您可以在初始化时设置它。

来自苹果的文档。

贴纸浏览器查看

init(frame: CGRect, stickerSize: MSStickerSize)

创建一个包含指定大小的贴纸的新贴纸浏览器。

StickerBrowserViewController

init(stickerSize: MSStickerSize)

使用提供的大小的贴纸创建一个新的贴纸浏览器视图控制器。

要对其进行子类化,请实现相应的initializers。

我看不到init(stickerSize: MSStickerSize)通过以某种方式链接init来自的调用来调用的方法required init?(coder aDecoder: NSCoder),因此您可能必须以编程方式实例化 viewControllers。

于 2016-12-16T16:27:18.633 回答