代碼在playground中實現
//: Playground - noun: a place where people can play import UIKit class MyView : UIView{ override func drawRect(rect: CGRect) { //獲取繪制上下文 var context = UIGraphicsGetCurrentContext() //計算要在其中繪制的矩形 var pathRect = CGRectInset(self.bounds, self.bounds.size.width*0.1, self.bounds.size.height*0.1) //創建一個圓角矩形路徑 var rectanglePath = UIBezierPath(roundedRect: pathRect, cornerRadius: 20) //等價於保存上下文 CGContextSaveGState(context) //准備陰影 var shadow = UIColor.blackColor().CGColor var shadowOffset = CGSize(width: 3, height: 3) var shadowBlurRadius : CGFloat = 5.0 //此函數創建和應用陰影 CGContextSetShadowWithColor(context, shadowOffset, shadowBlurRadius, shadow) //繪制路徑;它將帶有一個陰影 UIColor.redColor().setFill() rectanglePath.fill() //等價於重載上下文 CGContextRestoreGState(context) } } let viewRect = CGRect(x: 0, y: 0, width: 100, height: 100) let myEmptyView = MyView(frame:viewRect) myEmptyView.backgroundColor = UIColor.clearColor()
效果圖