为UIView设置阴影效果

阴影效果的实现,苹果提供了很好的实现方式,主要是layer层的绘制,具体的原理,可以查询资料.

1.最直接,也是比较简单的方式:效果如红色view

 1 func addShadowView(){
 2         let shadowView = UIView(frame: CGRectMake(100, 100, 100, 100))
 3         shadowView.backgroundColor = UIColor.redColor()
 4         //setShadow
 5         shadowView.layer.cornerRadius = 5;
 6         shadowView.layer.shadowColor = UIColor.blackColor().CGColor
 7         shadowView.layer.shadowOffset = CGSizeMake(5, 10)
 8         shadowView.layer.shadowOpacity = 1.0
 9         shadowView.layer.shadowRadius = 5;
10         //clipsToBounds为true不会显示阴影
11         //shadowView.clipsToBounds = true
12         view.addSubview(shadowView)
13         
14         
15     }

 

2.可以自定义一个view,重写drawRect:方法

主要代码:

 1 override func drawRect(rect: CGRect) {
 2         //get contextRef
 3         var context = UIGraphicsGetCurrentContext()
 4         //rect
 5         var pathRect = CGRectInset(self.bounds, self.bounds.size.width * 0.1, self.bounds.size.height * 0.1)
 6         let cornerRaidus: CGFloat = 20
 7         var rectanglePath = UIBezierPath(roundedRect: pathRect, cornerRadius: cornerRaidus)
 8         CGContextSaveGState(context)
 9         //set shadow
10         var shadow = UIColor.blackColor().CGColor
11         var shadowOffset = CGSizeMake(3, 3)
12         var shadowRadius : CGFloat = 5.0
13         
14         
15         CGContextSetShadowWithColor(context, shadowOffset, shadowRadius, shadow)
16         //fill color
17         UIColor.greenColor().setFill()
18         rectanglePath.fill()
19         CGContextRestoreGState(context)
20     }

效果为绿色view

类似的渐变色,transform都重写drawRect:可以自己定义.

 

转载于:https://www.cnblogs.com/luohome-ios/p/4973404.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值