如何為圓角添加陰影

在iOS中為UIView添加陰影還是比較簡單的,只需要設置layershadow屬性就可以了,但是問題在于設置陰影之后,必須設置masksToBoundsNO,而圓角圖片則要求masksToBounds必須為YES,兩者相互沖突,會導致無法正確的添加陰影。
正確的做法是先創(chuàng)建一個透明的UIView,并添加陰影,設置masksToBoundsNO;
然后在透明的UIView上添加圓角圖片,在subView上設置masksToBoundsYES;
這樣,就可以完美實現(xiàn)對應的陰影了。

        let baseView = UIView(frame: CGRect(x: 100, y: 100, width: 100, height: 100))
        // add the shadow to the base view
        baseView.backgroundColor = UIColor.clear
        baseView.layer.shadowColor = UIColor.black.cgColor
        baseView.layer.shadowOffset = CGSize(width: 3, height: 3)
        baseView.layer.shadowOpacity = 0.7
        baseView.layer.shadowRadius = 4.0
        self.view.addSubview(baseView)
        
        // add any other subcontent that you want clipped
        let otherSubContent = UIImageView()
        otherSubContent.image = UIImage(named: "lion")
        otherSubContent.frame = baseView.bounds
        otherSubContent.layer.masksToBounds = true
        otherSubContent.layer.cornerRadius = 50
        baseView.addSubview(otherSubContent)

效果如下圖:


屏幕快照 2017-08-03 下午2.53.46.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 在iOS中隨處都可以看到絢麗的動畫效果,實現(xiàn)這些動畫的過程并不復雜,今天將帶大家一窺iOS動畫全貌。在這里你可以看...
    F麥子閱讀 5,270評論 5 13
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現(xiàn)這些動畫的過程并不復雜,今天將帶大家一窺ios動畫全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,690評論 6 30
  • //設置尺寸為屏幕尺寸的時候self.window = [[UIWindow alloc] initWithFra...
    LuckTime閱讀 971評論 0 0
  • { 11、核心動畫 需要簽協(xié)議,但是系統(tǒng)幫簽好 一、CABasicAnimation 1、創(chuàng)建基礎動畫對象 CAB...
    CYC666閱讀 1,701評論 2 4
  • 腦海里某天突然又冒出要畫畫的想法,希望每天打卡,能堅持吧,生活要多點色彩!再一步步進階彩鉛水彩?。?/div>
    Fancy_a787閱讀 355評論 0 0

友情鏈接更多精彩內容