CoreAnimationのLayer
from CoreAnimation
CALayerとは
UIViewのlayerがこのクラス
CAはCoreAnimationのこと
Viewに描画するためのオブジェクトを管理する
アニメーションもLayerが管理する
というかLayerに紐付ける、という言い方が正しいのかな
タッチイベントなどは受け取れない
CALayerの入れ子ができる
Viewに描画する内容を管理する
一つ一つのオブジェクト?
もしくは複数のオブジェクトを束ねるもの?
こっちぽい
アニメーションのときはまた考えることが増える?
キャパオーバーしたmrsekut.icon
https://www.indetail.co.jp/blog/ios-view-layer/
CAHogeLayerはCALayerのサブクラス
https://www.raywenderlich.com/402-calayer-tutorial-for-ios-getting-started
tutorialてきな?
体系的で詳しい
読んでないけどmrsekut.icon
https://dev.classmethod.jp/smartphone/ios-calayerを使ってグラフィック操作で遊んでみよう!/
#??
blueView.layer.add(animation, forKey: nil)がわからんねんな、
見た感じ手順としてはこんな感じか
アニメーションAを作成
Aを実行するためのsubLayer Lを作成
Lにadd(A)する
大元の?view.layerにaddSublayer(L)をする
code:swift
// アニメーションを作成
let a = CABasicAnimation(keyPath: "strokeEnd")
a.duration = 1.0
// レイヤーを作成
let l = CAShapeLayer()
layer.frame = layer_frame
// レイヤーにアニメーションを付加
l.add(a, forKey: nil)
// 大元にサブレイヤーを追加
view.layer.addSublayer(l)
レイヤーを新しく作成する意義とは
なんで、一つのレイヤに複数のアニメーションを追加していくのではだめ?
レイヤーを増やすと重くなる?
レイヤーはどのタイミングでレンダリング?され、破棄?される?
レイヤーの種類とその使い分け
CAShapeLayerとは
docs
図形を表示できる
ベジエ曲線で様々な図形を表現できるCALayerのサブクラス
オブジェクト?を作るときはだいたいCore GraphicsのCGPathとかを使うのか?
https://developer.apple.com/documentation/quartzcore/cashapelayer
アニメーションとか関係なく、ただ画面上に線を引きたいとかだとこいつを使うのか
fillColorで背景の塗りつぶし
strokeColorで図形の輪郭の色
fillRule
https://dev.classmethod.jp/smartphone/iphone/fixed-cashapelayer-difference-of-two-fillrule/
コード例 ref
その、線を引くときに使うのがHogePathというクラスか
UIBezierPath
たぶんベジエ曲線
CGMutablePath
https://qiita.com/a_jike/items/5b30ee6330c33af0a5c7
https://medium.com/@bj1024/calayer-mask-79a7a0dc38c6
https://qiita.com/ykyouhei/items/bbec22eb104f5cdf7a6f#cashapelayer
https://qiita.com/ironoir/items/ff9f416387bf84fb8a91
https://qiita.com/hachinobu/items/dc2ff32fa2be6b78ea86
CATextLayer
文字列を扱うことのできるCALayerのサブクラス
https://qiita.com/type-f/items/54d54bbce01cbc71ae55#catextlayer
CAEmitterLayer
パーティクルを扱う
https://qiita.com/type-f/items/54d54bbce01cbc71ae55#caemitterlayer
CAReplicatorLayer
CAReplicatorLayerは、そのサブレイヤーに様々な変換を加えた上で複製を作成できるCALayerのサブクラスです。 ref
https://qiita.com/type-f/items/54d54bbce01cbc71ae55#careplicatorlayer
CAGradientLayer
グラデーションをするレイヤー
https://qiita.com/type-f/items/54d54bbce01cbc71ae55#cagradientlayer
https://medium.com/@bj1024/calayer-mask-79a7a0dc38c6
https://qiita.com/ykyouhei/items/bbec22eb104f5cdf7a6f#cagradientlayer