Как отдать теневую карту в iOS

Я хотел бы дать теневой эффект, похожий на изображение в приложении iOS

введите описание изображения здесь

Мне нужно это на UITableViewCell, изображение не будет работать для меня и пробелы между ячейками с эффектом тени

Ответ 1

Используйте представление контейнера внутри ячейки представления таблицы и назначьте тег say 99. Держите высоту ячейки немного больше, чем ваша карта (вид контейнера).

и тень для просмотра вашей карты

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)];

Ответ 2

Импровизированное решение на 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
    }
}

Использование:

На cellForRowAt indexPath:

var cell = UITableViewCell()

cell.contentView.setCardView()

Ответ 3

Возможно, кому-то нужна версия Swift

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;

    }

Ответ 4

Вы можете дать эффект тени, используя этот код...

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;

Ответ 5

    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

         }  
}