Adding A Shadow To UIView

参考: http://nscookbook.com/2013/01/ios-programming-recipe-10-adding-a-shadow-to-uiview/

shadowOffset
is a CGSize representing how far to offset the shadow from the path.

shadowColor
is the color of the shadow. Shadow colors should always be opaque, because the opacity will be set by the shadowOpacity property. The shadowColor property is a CGColor not a UIColor.

shadowRadius
is the width of the shadow along the shadow path
he blur radius (in points) used to render the layer’s shadow

shadowOpacity
determines the opacity of the shadow.

shadowPath
is probably the most important of the properties. While a shadow can be drawn without specifying a path, for performance reasons you should always specify one. This path tells Core Animation what the opaque regions of the view are, and without it, things slow down severely! It is a CGPath, which is most easily created using UIBezierPath (iOS only)

按钮左边添加阴影
- (CGPathRef)fancyShadowForRect:(CGRect)rect
{
CGSize size = rect.size;
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:CGPointZero];
[path addLineToPoint:CGPointMake(-12, 7)];
[path addLineToPoint:CGPointMake(-12, size.height - 7)];
[path addLineToPoint:CGPointMake(0, size.height - 7)];
[path closePath];
return path.CGPath;
}


plusBtn.layer.shadowOffset = CGSizeZero;
plusBtn.layer.shadowOpacity = 0.9;
plusBtn.layer.shadowColor = [[UIColor whiteColor] CGColor];
plusBtn.layer.shadowRadius = 5;
plusBtn.layer.shadowPath = [self fancyShadowForRect:plusBtn.bounds];

posted @ 2016-06-05 18:23  qike  阅读(138)  评论(0编辑  收藏  举报