Skip to content

Instantly share code, notes, and snippets.

@sdgandhi
Created June 1, 2015 02:04
Show Gist options
  • Save sdgandhi/7f149f6348a7c203d5b7 to your computer and use it in GitHub Desktop.
Save sdgandhi/7f149f6348a7c203d5b7 to your computer and use it in GitHub Desktop.
Apple Watch — Load animated image from sprite sheet
func loadingAnimationImage() -> UIImage? {
let sheet = UIImage(named: "activity-large")
var images = [UIImage]()
if sheet == nil {
return nil
}
for (var currentX = 0; currentX < Int(sheet!.size.width); currentX += 54) {
let splitRef = CGImageCreateWithImageInRect(sheet?.CGImage, CGRect(x: CGFloat(currentX), y: 0.0, width: 54.0, height: sheet!.size.height * 2))
images.append(UIImage(CGImage: splitRef, scale: scale, orientation: .Up)!)
}
let animatedImage = UIImage.animatedImageWithImages(images, duration: 0.5)
WKInterfaceDevice.currentDevice().addCachedImage(animatedImage, name: LoadingImageIdentifier)
return animatedImage
}
func generateLoadingAnimation() {
if let _: AnyObject = WKInterfaceDevice.currentDevice().cachedImages[LoadingImageIdentifier] {
firstImage.setImageNamed(LoadingImageIdentifier)
firstImage.startAnimating()
secondImage.setImageNamed(LoadingImageIdentifier)
secondImage.startAnimating()
} else if let image = loadingAnimationImage() {
firstImage.setImage(image)
firstImage.startAnimating()
secondImage.setImage(image)
secondImage.startAnimating()
}
}
// Image at https://github.com/contentful-labs/ContentfulWatchKitExample/blob/master/WatchKit%20Extension/Images.xcassets/activity-large.imageset/activity-large%402x.png
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment