Я хочу настроить цвет элемента панели вкладок в моем пользовательском подклассе UITabController, и он отлично работает, когда я делаю это с: tabBar.barTintColor = .blue
(с любым системным или пользовательским цветом)
Но когда Я пытаюсь добавить градиент, используя свое собственное расширение UIImage
extension UIImage {
static func gradientImageWithBounds(bounds: CGRect, colors: [CGColor]) -> UIImage {
let gradientLayer = CAGradientLayer()
gradientLayer.frame = bounds
gradientLayer.colors = colors
gradientLayer.startPoint = CGPoint(x: 0.5, y: 0.0)
gradientLayer.endPoint = CGPoint(x: 0.5, y: 1.0)
gradientLayer.masksToBounds = true
UIGraphicsBeginImageContext(gradientLayer.bounds.size)
gradientLayer.render(in: UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image!
}
}
tabBar.barTintColor = UIColor(patternImage: UIImage.gradientImageWithBounds(bounds: tabBar.bounds, colors: [Colors.tabBarTopGradient, Colors.tabBarBottomGradient]))
. У меня проблемы с градиентом, который неправильно применяется к нижней части панели вкладок вокруг безопасной области телефона. Что мне здесь не хватает? Это выглядит так: