Swift-CATransformLayer

CATransformLayer用來創(chuàng)建真是的3D層次視圖僻爽,而不是像其他的CALayer通過扁平的層次結(jié)果去渲染視圖模型.

不同于普通的CALayer中子圖層的z軸是0夹厌, CATransformLayer的子圖層Z軸不為0南蹂,因此有很大普通CALayer的特性CATransformLayer并不支持.

  • 只有子圖層被渲染,CALayer的很多特性被忽略赦邻,包括背景顏色囚玫,contents,邊框設(shè)置昨忆,繪制樣式屬性等.

  • 默認(rèn)的二維圖片的處理也被忽略戚丸,包括 filters, backgroundFilters, compositingFilter, mask, masksToBounds, and shadow style properties.

  • 透明度屬性只是作用于單獨(dú)的圖層,并不作用于整個(gè)圖層組.

  • hitTest方法永遠(yuǎn)都不會(huì)被調(diào)用扔嵌,因?yàn)閔itTest是基于二維坐標(biāo)系無法映射到三維坐標(biāo)系.

CATransformLayer與CALayer對(duì)比.png

效果圖中的第一個(gè)圖是通過CATransformLayer添加子視圖的結(jié)果限府,第二個(gè)是CALayer添加自視圖的結(jié)果,背景的Layer都設(shè)置了m34(景深)設(shè)置.

CATransformLayer代碼:

        let layer = CATransformLayer()
        layer.addSublayer(layerOfColor(.red, zPosition: 20))
        layer.addSublayer(layerOfColor(.green, zPosition: 40))
        layer.addSublayer(layerOfColor(.orange, zPosition: 60))
        
        var perspective = CATransform3DIdentity
        perspective.m34 = -1 / 100
        layer.transform = CATransform3DRotate(perspective, 0.1, 0, 1, 0)
        layer.backgroundColor = UIColor.gray.cgColor
        self.view.layer.addSublayer(layer)

CALayer代碼:

        let layer = CALayer()
        layer.addSublayer(layerOfColor(.red, zPosition: 20))
        layer.addSublayer(layerOfColor(.green, zPosition: 40))
        layer.addSublayer(layerOfColor(.orange, zPosition: 60))
        
        var perspective = CATransform3DIdentity
        perspective.m34 = -1 / 100
        layer.transform = CATransform3DRotate(perspective, 0.1, 0, 1, 0)
        layer.backgroundColor = UIColor.gray.cgColor
        layer.frame = CGRect(x: 0, y: 300, width: 300, height: 300)
        self.view.layer.addSublayer(layer)
    func layerOfColor(_ color: UIColor, zPosition: CGFloat) -> CALayer {
        let layer = CALayer()
        layer.frame = CGRect(x: 50, y: 50, width: 100, height: 100)
        layer.backgroundColor = color.cgColor
        layer.zPosition = zPosition
        layer.opacity = 0.5
        
        return layer
    }

參考資料:
https://developer.apple.com/documentation/quartzcore/catransformlayer

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末痢缎,一起剝皮案震驚了整個(gè)濱河市胁勺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌独旷,老刑警劉巖署穗,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異嵌洼,居然都是意外死亡案疲,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門麻养,熙熙樓的掌柜王于貴愁眉苦臉地迎上來褐啡,“玉大人,你說我怎么就攤上這事鳖昌”钙瑁” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵许昨,是天一觀的道長(zhǎng)革答。 經(jīng)常有香客問我扒磁,道長(zhǎng)蝌麸,這世上最難降的妖魔是什么痊硕? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮速那,結(jié)果婚禮上俐银,老公的妹妹穿的比我還像新娘。我一直安慰自己琅坡,他們只是感情好悉患,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著榆俺,像睡著了一般售躁。 火紅的嫁衣襯著肌膚如雪坞淮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天陪捷,我揣著相機(jī)與錄音回窘,去河邊找鬼。 笑死市袖,一個(gè)胖子當(dāng)著我的面吹牛啡直,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播苍碟,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼酒觅,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了微峰?” 一聲冷哼從身側(cè)響起舷丹,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蜓肆,沒想到半個(gè)月后颜凯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡仗扬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年症概,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片早芭。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡彼城,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出逼友,到底是詐尸還是另有隱情精肃,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布帜乞,位于F島的核電站,受9級(jí)特大地震影響筐眷,放射性物質(zhì)發(fā)生泄漏黎烈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一匀谣、第九天 我趴在偏房一處隱蔽的房頂上張望照棋。 院中可真熱鬧,春花似錦武翎、人聲如沸烈炭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽符隙。三九已至趴捅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間霹疫,已是汗流浹背拱绑。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丽蝎,地道東北人猎拨。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像屠阻,于是被迫代替她去往敵國(guó)和親红省。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

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