0

iOSで影を落とす方法は?iosで影を落とす

私のオブジェクトはUIImageViewです。私は楕円形の影を落としたいと思います。参照のために画像を参照してください。 enter image description here

+0

ほぼ透明黒い楕円で別の画像を使用していないのはなぜ? – alexburtnik

+0

あなたの目的は?どのようにオブジェクト指向。これまでに何を試しましたか? –

+0

@Leo Natan赤い四角形が私のオブジェクトです。実際にそのイメージビューと私は図に示すように画像ビューの影を落としたいです – HPM

答えて

4

シャドウを表示するために別の画像を使用するとよいでしょう。ぼかし画像を使用するか、画像ビューのアルファを変更します。

それとも、プログラムでそれをしたい場合は、それを試してみてください。

のOBJ 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; 

スウィフト:

//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 

出力:

enter image description here

http://www.innofied.com/implementing-shadow-ios/から撮影しても、詳細を知るために見て:UIView with rounded corners and drop shadow?

+0

これは私のために働く。ありがとうございました – HPM

+0

ようこそ。私の答えを受け入れ、upvoteしてください。 @HPM –

0

あなたはこのよう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]; 

スウィフト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) 

出力:

enter image description here

関連する問題