iOS下按鈕同時實現圓角與陰影效果
阿新 • • 發佈:2019-01-26
先看一下,實現一個button的圓角,如下程式碼:
button.layer.masksToBounds =YES;
button.layer.cornerRadius =10;
實現一個按鈕的陰影效果,如下程式碼:button.shadowOffset = CGSizeMake(10, 10);
button.shadowOpacity = 0.7;
此時,如果你想即實現圓角又要陰影效果,那麼這時會有問題,你把masksToBounds設成yes此時是圓角,但是陰影會沒了,你把它設成no,圓角沒了,陰影有了,於是我開始滿網路去查,都沒有找到解決方法,最後在一個論壇裡有個兄弟這樣說了一句:需要用一個層去實現陰影,然後我照著這個思路,寫了如下程式碼
CALayer *layer = [CALayerlayer];
layer.frame = CGRectMake(跟button一樣的位置並且一樣大);
layer.backgroundColor = [UIColorblackColor].CGColor;
layer.shadowOffset = CGSizeMake(10, 10);
layer.shadowOpacity = 0.7;
layer.cornerRadius = 10;
//這裡self表示當前自定義的view
[self.layeraddSublayer:layer];
UIButton *button = [[UIButton
[self addSubview:button];
button.layer.masksToBounds =YES;
button.layer.cornerRadius =10;
結果:同時實現圓角與陰影,思路是在按鈕與view之間加一層,去實現一個帶圓角的陰影,這樣最後就可以達到效果,注意一定要先上層再上按鈕,這樣保證按鈕在層之上。