2013-09-22 169 views
0

我想實現一些小事。我想給我的UIButton塗一個陰影;沒有陰影半徑。這似乎不適用於我。只要將陰影半徑設置爲0,陰影就會完全消失,而將其設置爲任何其他值都會正常繪製陰影。UIButton奇怪的陰影行爲

這裏是我的代碼:

btn = [UIButton buttonWithType:UIButtonTypeCustom]; 
     btn.frame = CGRectMake(10, someView.frame.size.height-150, someView.frame.size.width-20, 60); 
btn.backgroundColor = UIColorFromRGB(kOrangeColor, 1.0f); 
btn.layer.cornerRadius = kCornerRadius; 
btn.titleLabel.font = kEdmondsansBold(24.0f); 
[btn addTarget:self action:@selector(doSomethingFancy) forControlEvents:UIControlEventTouchUpInside]; 
btn.layer.shadowOffset = CGSizeMake(0, 2); 
btn.layer.shadowColor = UIColorFromRGB(0xff2400, 1.0f).CGColor; 
btn.layer.shadowOpacity = 1.0f; 
btn.layer.shadowRadius= 0.0f; 
[btn setTitleColor:UIColorFromRGB(0xffffff, 1.0f) forState:UIControlStateNormal]; 
[btn setTitle:@"Fancy fancy" forState:UIControlStateNormal]; 
[someView addSubview:btn]; 
+0

沒有影子半徑 - >沒有影子。如果它與半徑正常工作,爲什麼不使用它? – giorashc

+0

@giorashc半徑是否應該模糊/羽化邊緣?我想要一個穩固的影子......我會如何獲得這樣的效果? –

+0

你總是可以添加一個圖像(與按鈕大小相同),並在按鈕後面有一個輕微的(x,y)偏移量 – giorashc

回答

1

radius設置爲0,如你所願。
陰影'消失'。

但它沒有,它只是隱藏在按鈕後面。

爲了實現純色陰影,你也必須設置偏移這樣的:

button.layer.shadowOffset = CGSizeMake(xOffset, yOffset); 

如果你想對所有的邊緣添加陰影,那麼你應該考慮使用邊界,而不是陰影:

button.layer.borderColor = [UIColor blackColor].CGColor; 
button.layer.borderWidth = 3.f; 
+0

我已經明確地在我的問題中設置了一個shadowOffset。 –

+0

對不起,很高興它的作品。 –

+0

沒關係。無論如何,感謝您的幫助。 –