Как исчезнуть метка titleView на iOS 12 - PullRequest
0 голосов
/ 16 сентября 2018

Я пытаюсь потушить UILabel, который был добавлен как titleView элемент навигации *1003*.На iOS 11 и ниже, следующий код правильно исчезает с метки.При запуске на iOS 12 анимация затухания in работает, но затухание out не анимируется - представление сразу исчезает.

let fadeTextAnimation = CATransition()
fadeTextAnimation.type = .fade
fadeTextAnimation.duration = 0.5

navigationItem.titleView!.layer.add(fadeTextAnimation, forKey: nil)
(navigationItem.titleView as! UILabel).isHidden = didShowNavigationItemTitle

У меня также естьпопытался изменить код для использования UIView.transition, но наблюдается то же поведение.

UIView.transition(with: navigationItem.titleView!,
    duration: 0.5,
    options: .transitionCrossDissolve,
    animations: {
        (self.navigationItem.titleView as! UILabel).isHidden = self.didShowNavigationItemTitle
    }, completion: nil)

Как можно добиться такого исчезновения в iOS 12?

1 Ответ

0 голосов
/ 16 сентября 2018

Просто используйте блок UIView.animate и анимируйте альфа в заголовке.

UIView.animate(withDuration: 0.5, delay: 0, options: .transitionCrossDissolve, animations: {
    self.navigationItem.titleView?.alpha = 0
})
...