CALayer


Description

The CALayer class is the model class for layer-tree objects. It encapsulates the position, size, and transform of a layer, which defines its coordinate system. It also encapsulates the duration and pacing of a layer and its animations by adopting the CAMediaTiming protocol, which defines a layer’s time space.

CALayerクラスはレイヤー・ツリーオブジェクトの雛形クラスである。レイヤーの位置、大きさ、変形をカプセル化し、座標系を定義する。また、CAMediaTimingプロトコルを用いることによって、レイヤーやそのアニメーションの継続時間や感覚もカプセル化し、レイヤーの時間系を定義する。

(CALayerはUIView同様入れ子配置も可能で、画面に画像を表示する機能をだけを使いたい場合、UIViewよりCALayerを直接使った方が軽快で細かな処理ができる。)

Availability

iOS (2.0 and later)

Declared

CALayer.h

Reference

CALayer Class Reference

Guides

Core Animation Cookbook, Core Animation Programming Guide

Samples

AVSimpleEditoriOS, AccelerometerGraph, CoreTextPageViewer, SquareCam, oalTouch


#import "StudyAppDelegate.h"

/*CALayerを使うときには、「Linked Frameworks and Libraries」でQuartzCore.frameworksを追加し、
 QuartzCore/QuartzCore.hをimportしなければならない*/
#import 

@implementation StudyAppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.backgroundColor = [UIColor whiteColor];
    
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 300)];
    view.backgroundColor = [UIColor blackColor];
    [self.window addSubview:view];
    
    //CALayerのコンストラクタ
    CALayer* layer1 = [CALayer layer];
    CALayer* layer2 = [CALayer layer];
    
    //CALayerの矩形サイズと位置の指定
    layer1.frame = CGRectMake(20, 20, 30, 30);
    layer2.frame = CGRectMake(30, 70, 30, 30);
    
    //CALayerの背景色指定
    layer1.backgroundColor = [UIColor yellowColor].CGColor;
    layer2.backgroundColor = [UIColor greenColor].CGColor;
    
    //CALayerの透明度の指定
    layer1.opacity = 0.5;
    
    //CALayerの枠線の指定
    layer2.borderColor = [UIColor redColor].CGColor;
    layer2.borderWidth = 5;
    
    //CALayerの表示→UIViewオブジェクトが作成された時に自動的に付随するCALayerへ入れ子にする
    [view.layer addSublayer:layer1];
    [view.layer addSublayer:layer2];


    [self.window makeKeyAndVisible];
    return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application{}
- (void)applicationDidEnterBackground:(UIApplication *)application{}
- (void)applicationWillEnterForeground:(UIApplication *)application{}
- (void)applicationDidBecomeActive:(UIApplication *)application{}
- (void)applicationWillTerminate:(UIApplication *)application{}

@end

コメント