为什么贴纸包在列表中显示贴纸而不是在MSMessagesAppViewController中的网格中

时间:2017-06-13 10:22:22

标签: swift imessage mssticker

我正在为swift3中的i message app实现贴纸包应用

我的代码就像这样

 func loadStickers() {
    for i in 1...6 {
        if let url = Bundle.main.url(forResource: "flower\(i)", withExtension: "jpg") {
            do {
                let sticker = try MSSticker(contentsOfFileURL: url, localizedDescription: "")
                stickers.append(sticker)
            } catch {
                print(error)
            }
        }
    }
}



func createStickerBrowser() {
    let controller = MSStickerBrowserViewController(stickerSize: .large)

    addChildViewController(controller)
    view.addSubview(controller.view)

    controller.stickerBrowserView.backgroundColor = UIColor.blue
    controller.stickerBrowserView.dataSource = self

    view.topAnchor.constraint(equalTo: controller.view.topAnchor).isActive = true
    view.bottomAnchor.constraint(equalTo: controller.view.bottomAnchor).isActive = true
    view.leftAnchor.constraint(equalTo: controller.view.leftAnchor).isActive = true
    view.rightAnchor.constraint(equalTo: controller.view.rightAnchor).isActive = true
}

//代表

func numberOfStickers(in stickerBrowserView: MSStickerBrowserView) -> Int {
    return stickers.count
}

func stickerBrowserView(_ stickerBrowserView: MSStickerBrowserView, stickerAt index: Int) -> MSSticker {
    return stickers[index]
}

这里输出也没有错误

但问题是贴纸显示像列表我需要网格意味着每行3贴纸我搜索了很多教程但我没有得到任何人可以帮助我...

提前致谢

1 个答案:

答案 0 :(得分:0)

let controller = MSStickerBrowserViewController(stickerSize: .large)

大贴纸是206 x 206点,这意味着在大多数设备上没有空间可以显示每行多于一个。如果您需要网格,请使用较小的标签尺寸。如果要完全控制视图,请在单元格内使用带有MSStickerView的集合视图。