我们有动画(大约6-7秒,700x700像素,透明背景),这是由设计公司准备的。
我需要在我们的iOS应用程序的开始部分显示这些作为介绍。
在应用程序中轻松使用它们的最佳方式/格式是什么?
我不想处理动画的细节,因为它们都已经由设计师准备好了。
到目前为止,我们用UIView的animationImages功能尝试了png序列,但这种方法对内存不友好。
你有什么建议?
发布于 2016-10-24 19:17:58
试试这个简单的方法:
let timer = Timer()
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// I am using tiff image file for animation.You can use png or jpg both will works...
var imagesNames = ["1.tiff","2.tiff","3.tiff","4.tiff","5.tiff","6.tiff","7.tiff","8.tiff","9.tiff","10.tiff","11.tiff","12.tiff","13.tiff","14.tiff","15.tiff"]
var images = [UIImage]()
for i in 0..<imagesNames.count{
images.append(UIImage(named: imagesNames[i])!)
}
imageView.animationImages = images
imageView.animationDuration = 2
imageView.startAnimating()
Timer.scheduledTimer(timeInterval: 4.0, target: self, selector: #selector(timeToMoveOn), userInfo: nil, repeats: true)
}注意:如果您不希望动画是repeat.In timer函数,请将设置为false
func timeToMoveOn() {
//Do you stuff here.After animation finished
print("It Workes")
}
//To hide status bar.If you want to hide statusBar.
override var prefersStatusBarHidden: Bool {
return true
}输出:

发布于 2016-10-26 03:40:27
有关支持完整alpha通道的低内存使用率实现,请查看此SO answer。请注意,仅使用UIImageView和数组加载未压缩的数据是行不通的,因为这会将所有数据解压缩到内存中,并耗尽所有设备内存。这种方法的好处是,它可以使用拆分RGB+Alpha编码将一个完整的alpha通道编码为H.264。
发布于 2016-10-26 03:55:27
我不认为你会找到一个简单有效的解决方案。使用图像将需要大量的内存,从我使用电影的经验来看,你不会得到很好的透明效果。
根据你的动画,你可以降低分辨率,删除一些帧,或者如果透明区域在边缘,你可以裁剪这些帧,并将它们放在spritesheet上,然后用它来做动画。
创建精灵工作表的一个工具是https://www.codeandweb.com/texturepacker/。
https://stackoverflow.com/questions/40215535
复制相似问题