CoreAnimation學(xué)習(xí)筆記(一)

Playground是蘋果公司在2014年WWDC上隨Swift一起推出的列敲,是一款可以實(shí)現(xiàn)實(shí)時(shí)預(yù)覽代碼的效果工具。之前在做一些算法練習(xí)的時(shí)候使用它很方便莉擒,代碼寫完結(jié)果立刻就呈現(xiàn)出來了酿炸,最近在系統(tǒng)的學(xué)習(xí)CoreAnimation類庫,發(fā)現(xiàn)使用Playground也是很方便的涨冀,就選它來寫練習(xí)代碼啦√钏叮現(xiàn)在記錄下來我的學(xué)習(xí)過程,一是梳理記憶鹿鳖,加強(qiáng)學(xué)習(xí)效果扁眯,二來與大家分享一些心得體會(huì),發(fā)現(xiàn)自己的不足翅帜。

首先是創(chuàng)建一個(gè)Playground工程姻檀。打開Xcode,并選擇Get started with a palyground涝滴。

圖1

??給工程命名:

圖2

選擇創(chuàng)建工程路徑:

圖3

至此我們就創(chuàng)建好了一個(gè)Playground:

圖4

接下來要做的事就是引入PlaygroundSupport用來展示代碼的UI效果绣版,并對Playground的顯示模式做調(diào)整,這樣實(shí)時(shí)的UI效果就會(huì)顯示在屏幕的右邊歼疮。像這樣:

圖5

下面我們寫個(gè)簡單的View來測試一下我們的工程

import UIKit
import PlaygroundSupport

let testView = UIView(frame: CGRect(x: 0, y: 0, width: 375.0, height: 667.0))

testView.backgroundColor = UIColor.white

let anotherTestView = UIView(frame: CGRect(x: 10, y: 20, width: 100, height: 100))
anotherTestView.backgroundColor = UIColor.red
testView.addSubview(anotherTestView)

PlaygroundPage.current.liveView = testView

運(yùn)行效果如圖:

圖6

請注意紅框部分的代碼杂抽,這一行的作用類似于UIView的addSubview,沒有這一行代碼的話韩脏,UI是不會(huì)顯示出來的呦缩麸。你還可以將一個(gè)UIViewController賦值給PlaygroundPage.current.liveView。像這樣:

//: Playground - noun: a place where people can play

import UIKit
import PlaygroundSupport

class TestVC: UIViewController {

    var layerView = UIView(frame: CGRect(x: 10, y: 10, width: 100, height: 100))
    var colorLayer = CALayer()
    var btn = UIButton(type: UIButtonType.system)

    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.addSubview(self.layerView)
        self.view.addSubview(self.btn)
        self.view.backgroundColor = UIColor.white

        self.btn.frame = CGRect(x: 10, y: 120, width: 80, height: 40)
        self.btn.backgroundColor = UIColor.yellow
        self.btn.addTarget(self, action:#selector(btnClicked) , for: UIControlEvents.touchUpInside)

        self.colorLayer.frame = CGRect(x: 20, y: 20, width: 50, height: 50)
        self.colorLayer.backgroundColor = UIColor.black.cgColor
        let transition = CATransition()
        transition.type = kCATransitionFade
        self.colorLayer.actions = ["backgroundColor": transition]

        self.layerView.layer.addSublayer(self.colorLayer)
    }

    func btnClicked() {
        let red = CGFloat(arc4random())/CGFloat(INT_MAX)
        let green = CGFloat(arc4random())/CGFloat(INT_MAX)
        let blue = CGFloat(arc4random())/CGFloat(INT_MAX)

        self.colorLayer.backgroundColor = UIColor(red: red, green: green, blue: blue, alpha: 1.0).cgColor
    }
}

let vc = TestVC()
PlaygroundPage.current.liveView = vc

效果如下圖赡矢,點(diǎn)擊黃色按鈕就可以改變colorLayer的顏色:

圖7

至此杭朱,我們的準(zhǔn)備工作就完成了,然后我們就能開心的使用Playground學(xué)習(xí)動(dòng)畫制作啦~~
??To be continued……

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吹散,一起剝皮案震驚了整個(gè)濱河市弧械,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌空民,老刑警劉巖刃唐,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異袭景,居然都是意外死亡唁桩,警方通過查閱死者的電腦和手機(jī)闭树,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門耸棒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人报辱,你說我怎么就攤上這事与殃〉ド剑” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵幅疼,是天一觀的道長米奸。 經(jīng)常有香客問我,道長爽篷,這世上最難降的妖魔是什么悴晰? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮逐工,結(jié)果婚禮上铡溪,老公的妹妹穿的比我還像新娘。我一直安慰自己泪喊,他們只是感情好棕硫,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著袒啼,像睡著了一般哈扮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蚓再,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天滑肉,我揣著相機(jī)與錄音,去河邊找鬼对途。 笑死赦邻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的实檀。 我是一名探鬼主播惶洲,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼膳犹!你這毒婦竟也來了恬吕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬榮一對情侶失蹤须床,失蹤者是張志新(化名)和其女友劉穎铐料,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體豺旬,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钠惩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了族阅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片篓跛。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖坦刀,靈堂內(nèi)的尸體忽然破棺而出愧沟,到底是詐尸還是另有隱情蔬咬,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布沐寺,位于F島的核電站林艘,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏混坞。R本人自食惡果不足惜狐援,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望究孕。 院中可真熱鬧咕村,春花似錦、人聲如沸蚊俺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泳猬。三九已至批钠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間得封,已是汗流浹背埋心。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留忙上,地道東北人拷呆。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像疫粥,于是被迫代替她去往敵國和親茬斧。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,796評(píng)論 25 707
  • 這是關(guān)于系統(tǒng)學(xué)習(xí)CoreAnimation的學(xué)習(xí)筆記梗逮,記錄常用和重要的知識(shí)點(diǎn)项秉,gitbook地址:https://...
    LX2014閱讀 712評(píng)論 0 0
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件慷彤、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,066評(píng)論 4 62
  • 青年與30歲的我還搭邊嗎
    張賀的賀閱讀 143評(píng)論 0 0
  • http://www.missyuan.net/school/other_2014/other_15167_4.h...
    靖蘭亭閱讀 546評(píng)論 0 51