QuartzCore 提供了強大的影像處理功能,本篇所提到的陰影設定也是 QuartzCore 的功能之一,下面就來看看如何透過 QuartzCore 為物件加上陰影,與陰影微調的部份。
既然是要使用 QuartzCore,所以開撰寫程式碼之前請記得將加入對應的 Framework 與標頭檔,加入 Framework 的方式可以參考之前的文章或是直接在站內搜尋「Framework」即可。
#import <QuartzCore/QuartzCore.h>
如一開始的範例圖片所示,我們為 UIBotton 與 UILabel 加上陰影的效果,其程式碼如下。
//UIButton
//陰影的實體路徑設定
CGMutablePathRef shadowPath = CGPathCreateMutable();
CGPathMoveToPoint(shadowPath, NULL, 0.0, 0.0);
CGPathAddLineToPoint(shadowPath, NULL, 0.0, 140.0);
CGPathAddLineToPoint(shadowPath, NULL, 140.0, 140.0);
CGPathAddLineToPoint(shadowPath, NULL, 170.0, 0.0);
CGPathAddLineToPoint(shadowPath, NULL, 0.0, 0.0);
//陰影的位移量
[shadowButton.layer setShadowOffset:CGSizeMake(15.0, 15.0)];
//陰影的散射半徑(緊實程度)
[shadowButton.layer setShadowRadius:10.0];
//陰影的透明度1為不透明
[shadowButton.layer setShadowOpacity:0.8];
//陰影實體路徑
[shadowButton.layer setShadowPath:shadowPath];
//陰影顏色
[shadowButton.layer setShadowColor:[UIColor blackColor].CGColor];
//UILabel
[shadowLabel.layer setShadowOffset:CGSizeMake(3.0, 3.0)];
[shadowLabel.layer setShadowRadius:2.0];
[shadowLabel.layer setShadowOpacity:0.8];
[shadowLabel.layer setShadowColor:[UIColor purpleColor].CGColor];
上述程式碼陰影實體路徑部份是可以省略的,如果省略此部份陰影就會依照該物件的形狀去產生,如範例中的 UILabel 一般,當然你也可以針對陰影的路徑加以設定,做出有傾斜角度的陰影,如範例中的 UIButton。
沒有留言:
張貼留言