我想在我的自定义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]))

我遇到渐变问题,无法正确应用到手机安全区域周围的标签栏底部。我在这里想念什么?看起来像:ios - 标签栏的底部未正确着色-LMLPHP

最佳答案

请尝试在viewWillLayoutSubviews()中设置渐变色。希望有帮助!

10-08 03:47