Как создать панель навигации в стиле App StoreIOS

Программируем под IOS
Ответить
Anonymous
 Как создать панель навигации в стиле App Store

Сообщение Anonymous »

Я пытаюсь воссоздать анимацию панели навигации App Store. Сейчас я настраиваю альфа-канал панели навигации в зависимости от положения прокрутки.
Проблема в том, что при скольжении назад панель навигации не отображается в предыдущем представлении, поэтому Я устанавливаю альфа обратно на единицу в viewWillDissapear (которая работает не лучшим образом, как показано на рисунке).
Что касается кнопки «Назад», если вы измените альфа навигации Бар также влияет на кнопку «Назад». У Apple есть другая кнопка «Назад» (круг со стрелкой), когда панель навигации не видна, и эта кнопка исчезает с анимацией, когда появляется панель навигации и появляется кнопка «Назад» по умолчанию. Я не уверен, что они просто накладывают новый.
Этот вопрос задавался раньше, но принятый ответ заключался в том, чтобы сделать панель навигации прозрачной, а затем менять ее непрозрачность при прокрутке. . Это не создает тот же эффект, поскольку панель навигации по умолчанию не белая, а полупрозрачная, и вы также теряете линию границы внизу.
Swift 5

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

    override func viewWillDisappear(_ animated: Bool) {
navigationController?.navigationBar.alpha = 1
}

func scrollViewDidScroll(_ scrollView: UIScrollView) {

let currentVerticalOffset = scrollView.contentOffset.y

var percentageVerticalOffset = CGFloat() //currentVerticalOffset / maximumVerticalOffset

if currentVerticalOffset > collectionView.frame.size.height {
percentageVerticalOffset = currentVerticalOffset / currentVerticalOffset
self.title = "The Barn Owl"
//self.navigationItem.setHidesBackButton(false, animated: true)
} else {
percentageVerticalOffset = currentVerticalOffset / collectionView.frame.size.height
//self.navigationItem.setHidesBackButton(true, animated: true)
self.title = ""
}

//        let color = UIColor.init(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: percentageVerticalOffset)
//        navigationController?.navigationBar.backgroundColor = color

navigationController?.navigationBar.alpha = percentageVerticalOffset

}
Изображение

Изображение


Подробнее здесь: https://stackoverflow.com/questions/695 ... gation-bar
Ответить

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

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

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

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

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