Поскольку Apple изменила анимацию модальной презентации, у меня много проблем с пользовательским интерфейсом при простой модальной презентации.
Пример 1: ViewController, встроенный в контроллер навигации со стандартным названием, имеет разрыв между navigationBar
и viewController
Пример 2: ViewController, встроенный в контроллер навигации с большим заголовком, имеет разрыв между navigationBar
и viewController
Это происходит, если я делаю передачу в раскадровке программно следующим образом:
let cityNaviagtionVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "cityNavigationVC") as! UINavigationController
self.present(cityNaviagtionVC, animated: true, completion: nil)
Во втором примере я использую градиент вфон, это может быть фактором. Я использую это расширение:
func setBackgroundGradient(startColor:UIColor, endColor:UIColor, size:CGSize, horizontally:Bool) {
let gradientLayer = CAGradientLayer()
gradientLayer.frame = CGRect(x: 0, y: 0, width: size.width, height: size.height)
gradientLayer.colors = [startColor.cgColor, endColor.cgColor]
if horizontally {
gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.5)
gradientLayer.endPoint = CGPoint(x: 1.0, y: 0.5)
} else {
gradientLayer.startPoint = CGPoint(x: 0.5, y: 0.0)
gradientLayer.endPoint = CGPoint(x: 0.5, y: 1.0)
}
UIGraphicsBeginImageContext(gradientLayer.bounds.size)
gradientLayer.render(in: UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
self.barTintColor = UIColor(patternImage: image!)
}