0

我被一个问题困住了,你能解决我吗?

实际上,我正在为 imessage 应用程序实现自定义贴纸包。为此,我实现了所有工作正常但只有一个案例。

因此,如果我添加 .jpg 或 .png 格式的文件,它的显示和发送就完美了。如果我为贴纸添加 .gif 格式的图像,它在显示时间时不会动画。

显示目的我使用了集合视图MSStickerView

我的代码是:

func LoadStickers()
{


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

这些是我的集合视图代表:

func numberOfSections(in collectionView: UICollectionView) -> Int {

    return 1
}



func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

    return stickers.count
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "StickerPackCell", for: indexPath) as! FemaleStickerPackViewCell

    // Configure the cell

    cell.femaleStickerPack.sticker = stickers[indexPath.row]

    return cell
}

这是UICollectionViewCell

class StickerViewCell: UICollectionViewCell {
 @IBOutlet var femaleStickerPack: MSStickerView!

}

这是扩展:

extension UIViewController
{
   func addTo(appViewController host:MSMessagesAppViewController)
   {
    willMove(toParentViewController: host)
    host.addChildViewController(self)
    view.frame = host.view.bounds
    view.translatesAutoresizingMaskIntoConstraints = false
    host.view.addSubview(view)

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

    didMove(toParentViewController: host)

   }
}

所以我想存储.gif格式的贴纸,谁能帮帮我,我尝试了很多方法,但我没有得到。

提前致谢。

4

0 回答 0