В этом примере я упростил и сильно преувеличил эффект:

Код кнопки выглядит примерно так:
Код: Выделить всё
let button = UIButton();
button.layer.shadowOffset = CGSize(width: 0, height: 12);
button.layer.shadowColor = UIColor(red: 0.06, green: 0.09, blue: 0.13, alpha: 0.8).cgColor;
button.layer.shadowOpacity = 1;
button.layer.shadowRadius = 14;
button.backgroundColor = UIColor(red:0, green:0.65, blue:0.57, alpha:1);
button.layer.cornerRadius = 20;
button.translatesAutoresizingMaskIntoConstraints = false;
button.widthAnchor.constraint(equalToConstant: 40).isActive = true;
button.heightAnchor.constraint(equalToConstant: 40).isActive = true;
self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: button);
Код: Выделить всё
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default);
self.navigationController?.navigationBar.shadowImage = UIImage();
self.navigationController?.navigationBar.isTranslucent = true;
Подробнее здесь: https://stackoverflow.com/questions/499 ... -to-bounds
Мобильная версия