2010-09-14 106 views
3

我想給一些iPhone UIButton添加3D或有光澤的外觀,但是不使用PNG或可伸縮圖像。我有很多不同形狀和大小的按鈕,其中有很多顏色是隨時產生的,所以在我的情況下,預渲染圖像是不可行的。如何以編程方式向UIButton提供光面外觀?

你會如何去繪製這些按鈕的光澤程式化?

回答

3

this answer,我提供一些用於在UIView上繪製光澤梯度的代碼,但對同一問題的Mirko's answer則顯示了執行此操作的更高性能的方法。

我創建了一個更精細的三維按鈕樣式,以光澤和陰影作爲我的課程的示例。該3D按鈕的代碼是可以下載的包的一部分here(查找MATCGlossyButton UIButton子類)。我在我的iPhone開發課程的春季學期iTunes U上描述了這個元素在Quartz 2D類的視頻中的繪製。

-1
UIButton *button1     = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, 200, 40)]; 
button1.backgroundColor   = [UIColor blackColor]; 

CAGradientLayer *gradient = [CAGradientLayer layer]; 
gradient.frame = button1.bounds; 
gradient.colors = [NSArray arrayWithObjects: (id)[[UIColor grayColor] CGColor],(id)[[UIColor blackColor] CGColor], nil]; 
[button1.layer insertSublayer:gradient atIndex:0]; 
+2

這樣做的一些解釋會很好。 – 2012-11-29 14:28:34