Core Animation實戰一(認識圖層CALayer)
前言:
本文主要是蘋果官網文件Core Animation例子的總結學習,主要是實戰程式碼,不過多BB概念,幾年的學習經驗總結出,通過程式碼分析概念對我來說更有興趣,更好吸收。
Core Animation其實是一個令人誤解的命名。你可能認為它只是用來做動畫的,但實際上它是從一個叫做Layer Kit這麼一個不怎麼和動畫有關的名字演變而來,所以做動畫這只是Core Animation特性的冰山一角。
Core Animation是一個複合引擎,它的職責就是儘可能快地組合螢幕上不同的可視內容,這個內容是被分解成獨立的圖層,儲存在一個叫做圖層樹的體系之中。於是這個樹形成了UIKit以及在iOS應用程式當中你所能在螢幕上看見的一切的基礎。
認識CALayer
建立Layer和Layer的基本幾個簡單的屬性,不好說明的以後會單獨拿出來做例子。//
// ViewController.m
// LayerStudyDemo
//
// Created by apple on 2017/9/15.
// Copyright © 2017年 ZY. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
{
CALayer * yellowLayer;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.view.backgroundColor = [UIColor whiteColor];
//是否沿著Y軸翻轉
self.view.layer.geometryFlipped = YES;
[self layerDemo];
}
//建立一個圖層
-(void)layerDemo{
yellowLayer = [CALayer layer];
yellowLayer.frame = CGRectMake(50, 200, 100, 100);
yellowLayer.backgroundColor = [UIColor yellowColor].CGColor;
//設定圓角
yellowLayer.cornerRadius = 30;
//預設四個圓角,你也可以選擇圓角個數
yellowLayer.maskedCorners = kCALayerMinXMaxYCorner|kCALayerMinXMinYCorner;
//BOOL,Animatable。圖層有雙面,是否都顯示,設定NO意思背面看不到。下圖是兩個圖層分別設定doubleSided為NO和YES翻轉180°的效果。預設值為YES
yellowLayer.doubleSided = NO;
CATextLayer * textLayer = [CATextLayer layer];
textLayer.frame = yellowLayer.bounds;
textLayer.string = @"我們不一樣";
[yellowLayer addSublayer:textLayer];
CALayer * blueLayer = [CALayer layer];
blueLayer.frame = CGRectMake(50, 200, 100, 100);
blueLayer.backgroundColor = [UIColor blueColor].CGColor;
blueLayer.anchorPoint = CGPointMake(0.0f, 0.0f);
[self.view.layer addSublayer:blueLayer];
[self.view.layer addSublayer:yellowLayer];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
相關文章
- 玩轉iOS開發:6.《Core Animation》CALayer的Specialized LayersiOSZed
- netty實戰之一 認識nettyNetty
- Flutter | 通過一個小例子帶你認識動畫 AnimationFlutter動畫
- Core Animation總結
- Core Animation 之 ViewView
- webpack4.X 實戰(一):全面認識webpack、核心概念Web
- 核心動畫(Core Animation Programming)動畫
- Core Animation Programming Guide Mind MappingGUIIDEAPP
- Adobe國際認證,Photoshop中瞭解圖層基本知識
- 關於animation和transition一點知識
- 【asp.net core 系列】8 實戰之 利用 EF Core 完成資料操作層的實現ASP.NET
- 一張圖認識天下資料庫資料庫
- 【.NET Core微服務實戰-統一身份認證】開篇及目錄索引微服務索引
- Spring Security實戰三:說說我的認識Spring
- 視覺效果 -- iOS Core Animation 系列三視覺iOS
- 圖形的認識
- Dotnet core使用JWT認證授權最佳實踐(一)JWT
- Flutter開發實戰分析-animation_demo解析導讀Flutter
- 從0認識競品分析(附實戰分析抖音)
- .Net Core後端架構實戰【1-專案分層框架設計】後端架構框架
- java core dump分析實戰Java
- 從三個層面認識SRAM儲存器
- 一、認識 REST AssuredREST
- Docker初認識(一)Docker
- kafka初認識(一)Kafka
- EF Core 一、重識 EF
- 玩轉iOS開發:7.《Core Animation》Implicit AnimationsiOS
- Android基礎夯實–重溫動畫(三)之初識Property AnimationAndroid動畫
- 第六組-圖形的認識
- .Net Core中自定義認證實現
- ASP.NET Core - JWT認證實現ASP.NETJWT
- 鴻蒙專案實戰(六):識別本地圖片鴻蒙地圖
- .net core下訪問控制層的實現
- iOS開發UI篇--iOS動畫(Core Animation)總結iOSUI動畫
- 認識一下 Mobx
- 小學一年級奧數_認識圖形_02(認識三角形、四邊形)
- 入學管理系統的頂層圖和一層圖
- 思維導圖 第六組圖形的認識
- 第六組思維導圖——圖形的認識