Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Shadow effects on ImageView in iOS

I am trying to provide a shadow effect to my Imageview just like in this image.

enter image description here

but the problem which I am facing it is that the shadow is actually visible from the bottom of the Imageview.

Here is the code which I have done to add the shadow. The color and all is still not matching with this one.

          CAGradientLayer *shadow = [CAGradientLayer layer];
          shadow.frame = CGRectMake(-100, 70, perspectiveView.frame.size.width, 
           perspectiveView.frame.size.height - 20);
          shadow.startPoint = CGPointMake(1.0, 0.5);
           shadow.endPoint = CGPointMake(0, 0.5);
           shadow.colors = [NSArray arrayWithObjects:(id)[[UIColor colorWithWhite:0.0 
           alpha:0.4f] CGColor], (id)[[UIColor clearColor] CGColor], nil];

          shadow.opacity = 1.0f;
          [perspectiveView.layer addSublayer:shadow];

Please provide inputs. Also if the approach is wrong, feel free to guide me to any other approach. Thanks in advance.

Also can anyone suggest how to provide a 3D border just like in the image which provides a slight width to the image view?

like image 423
Shikhar varshney Avatar asked Dec 26 '22 01:12

Shikhar varshney


2 Answers

Perhaps, adding a shadow to the layer seems to work. You may want to try something like this:

//  perspectiveView.transform = CGAffineTransformMakeRotation(-50.0f);   
    perspectiveView.layer.shadowOffset = CGSizeMake(10, 10);
    perspectiveView.layer.shadowRadius = 5.0;
    perspectiveView.layer.shadowOpacity = 0.6;

    perspectiveView.layer.masksToBounds = NO;

You will need to playaround with these values to match your requirements. Hope this helps.

Here is my output:

enter image description here

like image 60
GenieWanted Avatar answered Dec 28 '22 10:12

GenieWanted


Try this,

- (void)setShadow {
    [perspectiveView.layer setShadowOffset:CGSizeMake(-5.0, 5.0)];
    [perspectiveView.layer setShadowRadius:5.0];
    [perspectiveView.layer setShadowOpacity:1.0];

}
like image 43
Neenu Avatar answered Dec 28 '22 08:12

Neenu