Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to give shadow like card in iOS

I would like to give shadow effect like card similar to the image in my iOS app

enter image description here

I need this on UITableViewCell the image will not work for me also the the gaps between cells with shadow effect

like image 227
Tarun Seera Avatar asked Apr 06 '16 08:04

Tarun Seera


4 Answers

Use a container view inside your table view cell and assign tag say 99. Keep the cell height a bit larger then your card (container view).

and give shadow to your card view

UIView* shadowView = [cell viewWithTag:99];
shadowView.backgroundColor=[UIColor colorWithRed:228.0/255.0 green:228.0/255.0 blue:228.0/255.0 alpha:0.5];
[shadowView.layer setCornerRadius:5.0f];
[shadowView.layer setBorderColor:[UIColor lightGrayColor].CGColor];
[shadowView.layer setBorderWidth:0.2f];
[shadowView.layer setShadowColor:[UIColor colorWithRed:225.0/255.0 green:228.0/255.0 blue:228.0/255.0 alpha:1.0].CGColor];
[shadowView.layer setShadowOpacity:1.0];
[shadowView.layer setShadowRadius:5.0];
[shadowView.layer setShadowOffset:CGSizeMake(5.0f, 5.0f)];
like image 131
Hasnain Avatar answered Oct 22 '22 23:10

Hasnain


An improvised solution on swift 3.0:

extension UIView {

    func setCardView(){
        layer.cornerRadius = 5.0
        layer.borderColor  =  UIColor.clear.cgColor
        layer.borderWidth = 5.0
        layer.shadowOpacity = 0.5
        layer.shadowColor =  UIColor.lightGray.cgColor
        layer.shadowRadius = 5.0
        layer.shadowOffset = CGSize(width:5, height: 5)
        layer.masksToBounds = true
    }
}

Usage:

On cellForRowAt indexPath:

var cell = UITableViewCell()

cell.contentView.setCardView()
like image 27
Alvin George Avatar answered Oct 22 '22 23:10

Alvin George


Maybe someone needs Swift version

func setCardView(view : UIView){

        view.layer.masksToBounds = false
        view.layer.shadowOffset = CGSizeMake(0, 0);
        view.layer.cornerRadius = 1; 
        view.layer.shadowRadius = 1;
        view.layer.shadowOpacity = 0.5;

    }
like image 43
yusufonderd Avatar answered Oct 22 '22 22:10

yusufonderd


You can give shadow effect by using this code...

UIView *viewTemp= (UIView *)view;
viewTemp.layer.shadowColor = [UIColor darkGrayColor].CGColor;
viewTemp.layer.shadowOffset = CGSizeMake(0, 2);
viewTemp.layer.shadowOpacity = 0.8;
viewTemp.layer.shadowRadius = 3;
viewTemp.layer.masksToBounds = NO;
like image 31
Mahendra Avatar answered Oct 23 '22 00:10

Mahendra