iOS中l(wèi)ayer之mask 詳解

話不多說测砂,劃重點(diǎn)这刷。

/************************************從這里開始****************************************/

1.mask 是CALayer的一個(gè)屬性,同時(shí)也是CALayer 類型的鼻弧。

2.原理:控制layer本身渲染的一個(gè)layer设江。效果是:比如imageLayer有一個(gè)maskLayer作為mask(注意maskLayer可以不跟imageLayer大小一樣),那maskLayer透明的地方温数,imageLayer就不會(huì)渲染绣硝,而是變透明蜻势,顯示出imageLayer之后的內(nèi)容撑刺,maskLayer不透明的地方,imageLayer就會(huì)正常渲染握玛,顯示出imageLayer本來的內(nèi)容如果maskLayer比imageLayer要小够傍,那默認(rèn)的maskLayer之外的地方都是透明的甫菠,都不會(huì)渲染。?

3.mask 的作用就是讓父圖層部分區(qū)域可見冕屯。

4.mask 的backgroundColor必須設(shè)置寂诱,不設(shè)置mask 背景就是透明的,mask 是不會(huì)起作用的安聘,但是backgroundColor設(shè)置什么顏色無所謂痰洒。

5.為一個(gè)layer的mask 創(chuàng)建一個(gè)新的mask時(shí),這個(gè)新的mask不能有superlayer 和sublayer浴韭。(官方文檔的說明)

6.mask 可以配合CAGradientLayer丘喻、CAShapeLayer 使用∧罹保可以實(shí)現(xiàn)蒙層透明度泉粉、顯示不同形狀圖層、圖案鏤空榴芳、文字變色等等功能嗡靡。

7.mask在動(dòng)畫中使用,可以產(chǎn)生很好的動(dòng)畫效果窟感。

/*************************************在這里結(jié)束***********************************/

mask屬性官方解釋

I讨彼、下面就展示一下mask 最基本的用法:


mask遮罩效果圖

核心代碼部分如下:

mask遮罩效果代碼圖

II、下面展示的是和CAShapeLayer結(jié)合使用的情況

- (UIView*)shapeView

{

? ? if(_shapeView==nil) {

? ? ? ? _shapeView = [[UIView alloc] initWithFrame:CGRectMake(50, 200, UIScreen.mainScreen.bounds.size.width - 50*2, 200)];

? ? ? ? _shapeView.backgroundColor = UIColor.grayColor;

? ? ? ? CAShapeLayer *shapeLayer = [CAShapeLayer layer];

? ? ? ? UIBezierPath *bezierPath = [UIBezierPath bezierPathWithOvalInRect:_shapeView.bounds];

? ? ? ? shapeLayer.path= bezierPath.CGPath;

? ? ? ? shapeLayer.strokeStart=0.0;

? ? ? ? shapeLayer.strokeEnd=1.0;

? ? ? ? shapeLayer.fillColor = UIColor.orangeColor.CGColor;

? ? ? ? shapeLayer.lineWidth=1.5;

? ? ? ? [_shapeView.layeraddSublayer:shapeLayer];

? ? ?//? ?_shapeView.layer.mask= shapeLayer;? ? ?>>>>>>>>>>>>>>>>>>>>>AAA行

? ? }

? ? return _shapeView;

}

上面這段代碼就是mask 和 CAShapeLayer 結(jié)合使用的簡(jiǎn)單示例:

上面代碼AAA行注釋掉的情況

shapeLayer 沒有賦值給mask情況

上面代碼AAA沒有注釋掉的情況:


mask被賦值了shapeLayer的情況

通過這兩張圖對(duì)比可以看出mask 和shapeLayer結(jié)合使用肌括,可以在父圖層上顯示你想要的圖形点骑,而父圖層的其它部分,則被隱去了谍夭。

III黑滴、擴(kuò)展

使用layer的mask屬性實(shí)現(xiàn)注水動(dòng)畫效果


圖片來之網(wǎng)絡(luò)


mask和shapeLayer 結(jié)合 實(shí)現(xiàn)的圓形動(dòng)畫加載

圖片來之網(wǎng)絡(luò)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市紧索,隨后出現(xiàn)的幾起案子袁辈,更是在濱河造成了極大的恐慌,老刑警劉巖珠漂,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晚缩,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡媳危,警方通過查閱死者的電腦和手機(jī)荞彼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來待笑,“玉大人鸣皂,你說我怎么就攤上這事。” “怎么了寞缝?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵癌压,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我荆陆,道長(zhǎng)滩届,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任被啼,我火速辦了婚禮帜消,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘浓体。我一直安慰自己券犁,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布汹碱。 她就那樣靜靜地躺著粘衬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪咳促。 梳的紋絲不亂的頭發(fā)上稚新,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音跪腹,去河邊找鬼。 笑死冲茸,一個(gè)胖子當(dāng)著我的面吹牛屯阀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播轴术,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼难衰,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了逗栽?” 一聲冷哼從身側(cè)響起盖袭,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎彼宠,沒想到半個(gè)月后鳄虱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凭峡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年拙已,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摧冀。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡倍踪,死狀恐怖霉涨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情惭适,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布楼镐,位于F島的核電站癞志,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏框产。R本人自食惡果不足惜凄杯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望秉宿。 院中可真熱鬧戒突,春花似錦、人聲如沸描睦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忱叭。三九已至隔崎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間韵丑,已是汗流浹背爵卒。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工珠叔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留古毛,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓斋荞,卻偏偏與公主長(zhǎng)得像陌僵,于是被迫代替她去往敵國(guó)和親轴合。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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