UIImage* backgroundImage = [UIImage imageNamed:kBackName];
CALayer* aLayer = [CALayer layer];
CGFloat nativeWidth = CGImageGetWidth(backgroundImage.CGImage);
CGFloat nativeHeight = CGImageGetHeight(backgroundImage.CGImage);
CGRect startFrame = CGRectMake(0.0, 0.0, nativeWidth, nativeHeight);
aLayer.contents = (id)backgroundImage.CGImage;
aLayer.frame = startFrame;
ou dans une aire de jeux Swift (vous devrez fournir votre propre image PNG dans le fichier de ressources de l'aire de jeu. J'utilise l'exemple de "FrogAvatar".)
//: Playground - noun: a place where people can play
import UIKit
if let backgroundImage = UIImage(named: "FrogAvatar") // you will have to provide your own image in your playground's Resource file
{
let height = backgroundImage.size.height
let width = backgroundImage.size.width
let aLayer = CALayer()
let startFrame = CGRect(x: 0, y: 0, width: width, height: height)
let aView = UIView(frame: startFrame)
aLayer.frame = startFrame
aLayer.contentsScale = aView.contentScaleFactor
aLayer.contents = backgroundImage.cgImage
aView.layer.addSublayer(aLayer)
aView // look at this via the Playground's eye icon
}

Où avez-vous lu ceci? UIViews en général sont des wrappers légers autour de CALayers, et je n'ai pas vu beaucoup de différence entre eux en ce qui concerne la mémoire ou les performances d'affichage. Je ne suis pas sûr si j'achète les 3 copies d'une image dans l'argument de mémoire. Dans tous les cas, CALayers font en effet partie de Core Animation (donc le préfixe CA). –