Тень на пользовательской кнопке панели навигации, обрезаемая до границIOS

Программируем под IOS
Ответить
Anonymous
 Тень на пользовательской кнопке панели навигации, обрезаемая до границ

Сообщение Anonymous »

У меня есть кнопка «Назад» на панели навигации, которую я хочу использовать с тенью, но тень ограничивается границами панели навигации. Возможно ли, что тени выходят за пределы панели навигации?

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


Код кнопки выглядит примерно так:

Код: Выделить всё

    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;
Я уже пробовал установить для clipsToBounds и Layer.masksToBounds значение false в навигационной панели, но это не решило проблему. Я полагаю, что в качестве хака я мог бы просто увеличить размер навигационной панели и переместить кнопку, чтобы тень не обрезала статусную панель, но надеюсь, что кто-то знает более идеальное решение.

Подробнее здесь: https://stackoverflow.com/questions/499 ... -to-bounds
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»