Swift: панель навигации с плавным переходом в полупрозрачность - PullRequest
0 голосов
/ 05 мая 2020

Я хотел бы воспроизвести эффект приложения Apple TV, в котором панель навигации начинается прозрачной (элементы на панели навигации все еще видны), а при прокрутке до определенного смещения прозрачность исчезает до прозрачности по умолчанию, например:

enter image description here

Моя реализация пока затухает на всей панели навигации, включая заголовок и кнопки.

Попытка 1:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    navigationController?.navigationBar.alpha = 0
}

override func scrollViewDidScroll(_ scrollView: UIScrollView) {
    let offset: CGFloat = 50
    let alpha = min(1, scrollView.contentOffset.y / offset)
    navigationController?.navigationBar.alpha = alpha
}

Результаты попытки 1:

enter image description here

Попытка 2:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
    navigationController?.navigationBar.shadowImage = UIImage()
    navigationController?.navigationBar.isTranslucent = true
}

override func scrollViewDidScroll(_ scrollView: UIScrollView) {
    let offset: CGFloat = 50
    let alpha = min(1, scrollView.contentOffset.y / offset)
    navigationController?.navigationBar.alpha = alpha
}

Результат попытки 2:

enter image description here

Я хочу начать с прозрачной панели навигации с видимым заголовком и кнопками, а также при прокрутке, возвращается полупрозрачный фон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...