[iPhone] アニメーション,キャッシュを使って表示 (Apple Watch)

アニメーションにおいてキャッシュにこの画像を登録することで
再利用する時に役立ちます
watchOS 1.2 のケースです
watchOS 2.0 では使えません
 
anime-cache
 

addCachedImage()

 
キャッシュ登録のメソッドです
addCachedImage(_ image: UIImage!, name name: String!) -> Bool
addCachedImageWithData(_ imageData: NSData!, name name: String!) -> Bool

キャッシュのサイズの制限があり
サイズを超えないように古い画像をしなければなりません
removeCachedImageWithName(_ name: String!)
removeAllCachedImages()

今回は
addCachedImage
removeAllCachedImages
を使ってみます

アニメーションでキャッシュを使うケースでは
iOS WKInterfaceDeviceによると

To cache images for an animation, cache the entire animation as a single UIImage object.
You can create such an image object using the animatedImageWithImages:duration: method

とあるのでいったん UIImage Objectにします

Apps can cache up to 5 MB of images. If there is not enough room in the caches to add the specified image, you must manually remove images using the removeCachedImageWithName: or removeAllCachedImages method.

メモリ解放もちゃんと自分でやれとのことです
 

 

InterfaceController.swift

 
InterfaceController.swift にコーディング

 
アニメーションさせる画像を用意して
Images.xcassets にそれぞれ入れます
この例では250×185のpngファイル aria_0@2x.png 〜 aria_3@2x.png の4個です

他に、WKInterfaceImageとボタンを interface.storyboard に設定すれば終わりです

ここでは、わかりやすくしましたが
このままではやはり問題があります
(売り物にはならないかも)

キャッシュされているものを把握して
古いものから消していくとか

BTでのデータ転送はそんなに早くないので
dispatchをしないと画像が間に合わない
などなど

ページのトップへ戻る
 
sponsored link

シェアする

  • このエントリーをはてなブックマークに追加

フォローする