我被一个问题困住了,你能解决我吗?
实际上,我正在为 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格式的贴纸,谁能帮帮我,我尝试了很多方法,但我没有得到。
提前致谢。