How to give shadow like card in iOS

后端 未结 5 1029
庸人自扰
庸人自扰 2020-12-13 05:49

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

I need this on UITableViewCell the image will not work for me also the the g

相关标签:
5条回答
  • 2020-12-13 06:06
        extension UIView {
    
    
              func addShadow(){
                self.layer.cornerRadius = 20.0
                self.layer.shadowColor = UIColor.gray.cgColor
                self.layer.shadowOffset = CGSize(width: 0.0, height: 0.0)
                self.layer.shadowRadius = 12.0
                self.layer.shadowOpacity = 0.7
    
             }  
    }
    
    0 讨论(0)
  • 2020-12-13 06:08

    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;
    
        }
    
    0 讨论(0)
  • 2020-12-13 06:11

    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)];
    
    0 讨论(0)
  • 2020-12-13 06:19

    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()
    
    0 讨论(0)
  • 2020-12-13 06:22

    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;
    
    0 讨论(0)
提交回复
热议问题