CLayer的相關知識

2021-07-10 04:25:52 字數 2783 閱讀 2655

屬性

說明是否支援隱式動畫

anchorpoint

和中心點position重合的乙個點

,稱為「錨點」,錨點的描述是相對於x、y位置比例而言的預設在影象中心點(0.5,0.5)的位置

是backgroundcolor

圖層背景顏色

是bordercolor

邊框顏色

是borderwidth

邊框寬度

bounds

圖層大小

是contents

圖層顯示內容,例如可以將作為圖層內容顯示

是contentsrect

圖層顯示內容的大小和位置

是cornerradius

圓角半徑

是doublesided

圖層背面是否顯示,預設為yes

否frame

圖層大小和位置,不支援隱式動畫,

所以calayer中很少使用frame,通常使用bounds和position代替

否hidden

是否隱藏

是mask

圖層蒙版

是masktobounds

子圖層是否剪下圖層邊界,預設為no

是opacity

透明度 ,類似於uiview的alpha

是position

圖層中心點位置,類似於uiview的center

是shadowcolor

陰影顏色

是shadowoffset

陰影偏移量

是shadowopacity

陰影透明度,注意預設為0,如果設定陰影必須設定此屬性

是shadowpath

陰影的形狀

是shadowradius

陰影模糊半徑

是sublayers

子圖層是

sublayertransform

子圖層形變

是transform

圖層形變是

為了進一步說明anchorpoint的作用,假設有乙個層大小100*100,現在中心點位置(50,50),由此可以得出frame(0,0,100,100)。上面說過anchorpoint預設為(0.5,0.5),同中心點position重合,此時使用圖形描述如圖1;當修改anchorpoint為(0,0),此時錨點處於圖層左上角,但是中心點poition並不會改變,因此圖層會向右下角移動,如圖2;然後修改anchorpoint為(1,1,),position還是保持位置不變,錨點處於圖層右下角,此時圖層如圖3。

對於圖一,我的理解是,首先根據bounds(0,0,0,100,100)確定layer的大小。然後設定position(50 , 50) 因為,position相當於center所以,就確定了layer在父layer中的位置。同時anchorpoint預設的值是(0.5,0.5)。對於圖二和圖三,首先要明白一條,position的位置不再改變。要移動layer的位置,改變的是anchorpoint的值。同時要記住的ancorpoint是和position重合的。也就是說

anchorpoint稱為"定位點",它決定著calayer身上的哪個點會在position屬性所指的位置

對於圖一來說,layer的中心點落在position的位置。

對於圖二來說,layer的左上角的點落在position的位置。

對於圖三來說,layer的右下角的點落在position的位置。

它決定著calayer身上的哪個點會在position所指定的位置上

。它的x、y取值範圍都是0~1,預設值為(0.5, 0.5),因此,預設情況下,calayer的中點會在position所指定的位置上。

###############################

怎麼position和anchorpoint來確定位置。

首先要清楚,uiview的frame屬性是由center和bounds屬性計算得到的。

frame.origin.x = center.x - bounds.size.width/2.0;

frame.origin.y = center.y - bounds.size.height/2.0;

frame.size = bounds.size;

相對的,身為uiview下級結構的calayer呢?

calayer的position(相當於center),bounds,anchorpoint是什麼關係呢?

雖然沒有frame,但是calayer的顯示(虛擬frame)也是由這些元件算出來的

frame.origin.x = position.x - anchorpoint.x * bounds.size.width/2.0;

frame.origin.y = position.y - anchorpoint.x * bounds.size.height/2.0;

frame.size = bounds.size;

所以,當我們在上面修改anchorpoint的時候,實際上修改了顯示的運算元素!這樣當anchorpoint修改為(1.0,1.0)的時候,經過重新運算,calayer向左上角移動了

===================================

參考:

mysql相關知識 MySQL相關知識

字串拼接 select from tablename where mydata like concat curdate limit 3 這裡concat是字串拼接,concat mys q l mysql 顯示日期不帶時間的函式,如 2015 05 14 curdate 是日期不算時間 2015 0...

RUP的相關知識

1 rup能解決什麼?提 如何對整個開發團隊的開發活動進行組織的指導 綜合指導單個開發人員和開發團隊 規定了開發成果是什麼 提供監控和衡量乙個專案中的產品和活動的標準 2 rup 的基本特徵是什麼?用例驅動的 以基本架構為中心 迭代式和增量性的 3 簡要描述 rup的工作流程 核心工作流程 業務需求...

Linux vi的相關知識

文字編輯 1.目標及幾種模式 1.1.熟悉 linux 系統中常用的編輯器以及編輯器分類 vi emacs nano gedit 1.2.熟練掌握 vi 編輯器的模式切換 命令模式 輸入模式 末行模式 似乎insert鍵可以切換模式 1.3.熟練掌握 vi 編輯器的各種模式下的操作 命令模式 vi ...