Ios 如何为iMessage标签提供不同尺寸的应用程序网格标签
我已经创建了一个iOS iMessage标签应用程序,根据苹果的文档,我应该能够以三种不同的尺寸之一显示标签 但是,无论我制作的标签图像大小如何(300px x 300px、408px x 408px、618px x 618px),它们都只显示为中间网格选项,每行有三个标签。有没有人知道如何解决这个问题,也许我遗漏了一些简单的东西 关于这个主题的文档很少,因为它是相当新的。谢谢你的帮助Ios 如何为iMessage标签提供不同尺寸的应用程序网格标签,ios,xcode,imessage,msstickerview,Ios,Xcode,Imessage,Msstickerview,我已经创建了一个iOS iMessage标签应用程序,根据苹果的文档,我应该能够以三种不同的尺寸之一显示标签 但是,无论我制作的标签图像大小如何(300px x 300px、408px x 408px、618px x 618px),它们都只显示为中间网格选项,每行有三个标签。有没有人知道如何解决这个问题,也许我遗漏了一些简单的东西 关于这个主题的文档很少,因为它是相当新的。谢谢你的帮助 链接到文档:导入300x300、408x408或618x618的图像只会影响标签在对话中显示的大小(当作为初
链接到文档:导入300x300、408x408或618x618的图像只会影响标签在对话中显示的大小(当作为初始消息发送或拖动到现有消息气泡上时)。更改图像的尺寸不会影响其在网格布局中的方向 要更改粘贴浏览视图中的网格布局,可以采用以下两种方法之一:
- 接口生成器
- 编程的
import UIKit
import Messages
class MyBrowserVC: MSStickerBrowserViewController {
//create stickers array
var stickers = [MSSticker]()
//load assets into stickers array
func loadStickers() {
createSticker(asset: "boycott", localizedDescription: "boycottSticker")
createSticker(asset: "alluminaughty", localizedDescription: "alluminaughtySticker")
createSticker(asset: "beer", localizedDescription: "beerSticker")
}
//func to create sticker
func createSticker(asset: String, localizedDescription: String) {
//create url from assets in main bundle
guard let stickerPath = Bundle.main.path(forResource: asset, ofType: "png") else {
print("Couldn't create sticker path for", asset)
return
}
let stickerURL = URL(fileURLWithPath: stickerPath)
let sticker: MSSticker
//create sticker from path(and localized description) and add to array
do {
try sticker = MSSticker(contentsOfFileURL: stickerURL,
localizedDescription: localizedDescription)
stickers.append(sticker)
} catch {
print(error)
return
}
}
//datasource methods
override func numberOfStickers(in stickerBrowserView: MSStickerBrowserView) -> Int {
return stickers.count
}
override func stickerBrowserView(_ stickerBrowserView: MSStickerBrowserView,
stickerAt index: Int) -> MSSticker {
return stickers[index]
}
}
在MessagesViewController(在开始新项目时应自动出现)中,从子类创建BrowserVC实例,设置标签大小、BrowserVC框架、将子视图添加到前端,并将标签加载到浏览器视图
MessageViewController.swift
import UIKit
import Messages
class MessagesViewController: MSMessagesAppViewController {
//create BrowserVC instance of Subclass
var browserVC: MyBrowserVC!
override func viewDidLoad() {
super.viewDidLoad()
//the next line of code is where you can adjust the "grid layout"
//your options are: .small(2 columns), .regular(3 columns), or .large(4 columns)
//instantiate browserVC with sticker size and set frame
browserVC = MyBrowserVC(stickerSize: .regular)
browserVC.view.frame = self.view.frame
//send browserVC to front
self.addChild(browserVC)
browserVC.didMove(toParent: self)
self.view.addSubview(browserVC.view)
//load stickers onto the browser view
browserVC.loadStickers()
browserVC.stickerBrowserView.reloadData()
}
}
要了解更多信息,请查看去年发布的关于贴纸的文章!这是我开始学习制作贴纸的地方,然后查阅文档!我也收到了同样的问题,但我想知道这是否仅仅是因为我有一个iPhone(在模拟器中的行为相同)