在ios中投下阴影

如何在iOS中删除对象阴影?

我的对象是UIImageView,我想放弃一个椭圆形的阴影。请参考图像。 在这里输入图像说明

最好用另一张影像来performance影子。 使用模糊图像或更改imageview的alpha。

或者,如果您想以编程方式执行此操作,请尝试:

对象c:

//create elliptical shadow for image through UIBezierPath CGRect ovalRect = CGRectMake(0.0f, _imageView.frame.size.height + 10, _imageView.frame.size.width, 15); UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:ovalRect]; //applying shadow to path _imageView.layer.shadowColor = kShadowColor.CGColor; _imageView.layer.shadowOffset = CGSizeMake(0.0, 0.0); _imageView.layer.shadowOpacity = 1.0; _imageView.layer.shadowRadius = 3.0; _imageView.layer.shadowPath = path.CGPath; 

Swift:

 //create elliptical shdow forimage through UIBezierPath var ovalRect = CGRectMake(0.0, imageView.frame.size.height + 10, imageView.frame.size.width, 15) var path = UIBezierPath(ovalInRect: ovalRect) //applying shadow to path imageView.layer.shadowColor = UIColor(white: 0.0, alpha: 0.5).CGColor imageView.layer.shadowOffset = CGSizeMake(0.0, 0.0) imageView.layer.shadowOpacity = 1.0 imageView.layer.shadowRadius = 3.0 imageView.layer.shadowPath = path.CGPath 

输出:

在这里输入图像说明

采取从http://www.innofied.com/implementing-shadow-ios/和也看看更多知道: 有圆angular和阴影的UIView?

你可以像这样使用CAShapeLayer:

Objective-C的:

 // init CAShapeLayer CAShapeLayer *shadowLayer = [CAShapeLayer layer]; shadowLayer.frame = CGRectMake(CGRectGetMinX(_imageView.frame), CGRectGetMaxY(_imageView.frame), _imageView.frame.size.width, _imageView.frame.size.height); shadowLayer.path = [UIBezierPath bezierPathWithOvalInRect:shadowLayer.bounds].CGPath; shadowLayer.fillColor = [UIColor colorWithWhite:0 alpha:0.02].CGColor; shadowLayer.lineWidth = 0; [self.view.layer addSublayer: shadowLayer]; 

Swift 3

 let shadowLayer = CAShapeLayer() shadowLayer.frame = CGRect(x: imageView.frame.minX, y: imageView.frame.maxY, width: imageView.frame.width, height: imageView.frame.height * 0.25) shadowLayer.path = UIBezierPath(ovalIn: shadowLayer.bounds).cgPath shadowLayer.fillColor = UIColor(white: 0, alpha: 0.02).cgColor shadowLayer.lineWidth = 0 view.layer.addSublayer(shadowLayer) 

输出:

在这里输入图像说明