在iOS上绘制阴影

代码在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()

  效果图

posted @ 2016-04-07 16:54  torrescx  阅读(1914)  评论(0编辑  收藏  举报