不知道怎么學(xué)習(xí)Quartz 2D 索性就全部翻譯一遍快毛,總結(jié)下demo晤斩,用的時候再結(jié)合大神的翻譯思路等等餐弱。中間因為實現(xiàn)播放器連播與防護鎖的問題宴霸,學(xué)習(xí)暫停了,繼續(xù)學(xué)習(xí)Quartz 2D之陰影膏蚓。
陰影就像一個圖像被繪制在下面瓢谢,并且有偏移量。就像一束光投射到圖像上形成的驮瞧。陰影可以使一個圖像出現(xiàn)三維或者它看起來像是浮動的氓扛。
陰影有三個參數(shù):X 軸偏移量 ,Y軸偏移量? 论笔,模糊值采郎。模糊值指定了圖像是否有明顯的邊緣或者是淡化的邊緣。
? How Shadows Work 如何工作
陰影是圖形狀態(tài)的一部分狂魔,你可以調(diào)用方法CGContextSetShadow蒜埋,傳入一個上下文,偏移量以及模糊值最楷。設(shè)置完后理茎,陰影被繪制采用RGBA 這個方法默認透明度為 {0, 0, 0, 1.0/3.0}.你也可以調(diào)用方法CGContextSetShadowWithColor,多提供一個CGColor的對象作為參數(shù)管嬉。
在你調(diào)用CGContextSetShadow or CGContextSetShadowWithColor之前保存了圖形狀態(tài)皂林,你可以通過恢復(fù)圖形狀態(tài)來關(guān)閉陰影。當(dāng)你設(shè)置shadow color 為NULL時也就關(guān)閉了陰影蚯撩。
Shadow Drawing Conventions Vary Based on the Context? 基于上下文的陰影繪制約定
先前描述的偏移量指定了投射到圖像上的陰影與 圖像的位置關(guān)系础倍。上下文解釋了偏移量,偏移量也被用來計算陰影的位置:
??? ?? 一個正的偏移量表示陰影在圖像對象的右邊
??? ??在Mac OS X 中胎挎,一個正向Y 偏移表示向上偏移沟启,這與Quartz 2D 的默認坐標系統(tǒng)是匹配的
??? ??在iOS中,假如你的應(yīng)用使用Quartz 2D創(chuàng)建PDF 或者位圖上下文犹菇,一個正向Y 偏移表示向上偏移
??? ??在iOS中德迹,假如你的應(yīng)用上下文是通過UIKit 創(chuàng)建的,比如調(diào)用UIGraphicsBeginImageContextWithOptions揭芍,表示正向Y偏移是向下的胳搞。這和UIKit 的坐標系統(tǒng)是匹配的。
陰影繪制約定不會被當(dāng)前轉(zhuǎn)換矩陣影響。
Painting with Shadows? 使用引用進行繪制
按照這些步驟來繪制陰影:
?1. 保存圖形狀態(tài)
2.調(diào)用方法 CGContextSetShaw肌毅,傳入合適的參數(shù)
3.完成你想繪制的陰影繪制
4. 恢復(fù)圖形狀態(tài)
按照這些步驟來繪制彩色的陰影:
1. 保存圖形狀態(tài)
2.創(chuàng)建一個CGColorSpace 對象以確保Quartz 能正確解釋陰影色值
3.創(chuàng)建一個CGColor對象來指定你繪制陰影所需要的顏色
4.調(diào)用方法 CGContextSetShadowWithColor 筷转,傳入合適的參數(shù)
5.完成繪制
6.恢復(fù)圖形狀態(tài)
Listing 7-1 一個完整的方法設(shè)置 陰影
? demo地址:Quartz 2D 模式之demo