iOS OC 如何為masksToBounds = YES的View添加陰影

大家都知道,一旦把控件的masksToBounds屬性設置為YES,那么控件的多余部分將被裁減。那如果我們需要在控件masksToBounds屬性為YES的基礎上添加陰影該怎么辦呢?


我想到的方法是,為該控件添加一層CALayer。代碼如下

- (void)setMidBaseView:(UIView *)midBaseView{

midBaseView.layer.cornerRadius = 5.0f;

midBaseView.layer.masksToBounds = YES;

CALayer *subLayer = [CALayer layer];

subLayer.frame = midBaseView.frame

subLayer.cornerRadius = 5.0f;

subLayer.backgroundColor = [UIColor clearColor].CGColor;

subLayer.masksToBounds = NO;

//todo 設置陰影

[self.layer insertSublayer:subLayer below:midBaseView.layer];

_midBaseView = midBaseView;

}

可以看到,我先為midBaseView添加了圓角,因此,midBaseView的maskToBounds屬性已被設置成了YES,然后我為midBaseView添加了一層subLayer,并為此layer設置了陰影,即可達到我們需要的效果~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 在iOS中隨處都可以看到絢麗的動畫效果,實現這些動畫的過程并不復雜,今天將帶大家一窺ios動畫全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,566評論 6 30
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現這些動畫的過程并不復雜,今天將帶大家一窺iOS動畫全貌。在這里你可以看...
    F麥子閱讀 5,141評論 5 13
  • Core Animation其實是一個令人誤解的命名。你可能認為它只是用來做動畫的,但實際上它是從一個叫做Laye...
    小貓仔閱讀 3,802評論 1 4
  • 轉載:http://www.lxweimin.com/p/32fcadd12108 每個UIView有一個伙伴稱為l...
    F麥子閱讀 6,307評論 0 13
  • >復雜的組織都是專門化的 >Catharine R. Stimpson 到目前為止,我們已經探討過`CALayer...
    夜空下最亮的亮點閱讀 1,064評論 0 2