iOS 13标签栏图层属性丢失迅速

问题描述 投票:-2回答:3

[我已经在图层的初始版本中在标签栏上添加了阴影,但是在iOS 13上,我们必须使用没有图层属性的外观,如何立即添加阴影。

阴影如下图所示。

enter image description here

if #available(iOS 13, *) {
            let appearance = self.self.tabBarController?.tabBar.standardAppearance.copy()
            appearance?.backgroundImage = UIImage()
            appearance?.shadowImage = UIImage()
            appearance?.shadowColor = .clear
            //appearance?.layer this is missing now
            if let appearance = appearance{
                self.tabBarController?.tabBar.standardAppearance = appearance
            }

        } else {
        self.tabBarController?.tabBar.shadowImage = UIImage()
        self.tabBarController?.tabBar.backgroundImage = UIImage()
        self.tabBarController?.tabBar.layer.shadowOpacity = 0.0
        self.tabBarController?.tabBar.layer.borderWidth = 0.0
        self.tabBarController?.tabBar.clipsToBounds = true
        self.tabBarController?.tabBar.layer.applySketchShadow(color: UIColor(red: 15/255, green: 54/255, blue: 136/255, alpha: 1.0), alpha: 0.1, x: 0, y: 0, blur: 25, spread: 0)
        self.tabBarController?.tabBar.clipsToBounds = false
        }
ios swift tabbar
3个回答
0
投票

设置clipsToBounds False将为您带来魔力。

//**self.tabBarController?.tabBar.clipsToBounds = false**

if #available(iOS 13, *) {
    let appearance = self.self.tabBarController?.tabBar.standardAppearance.copy()
    appearance?.backgroundImage = UIImage()
    appearance?.shadowImage = UIImage()
    appearance?.configureWithTransparentBackground()
    if let appearance = appearance{
        self.tabBarController?.tabBar.standardAppearance = appearance
    }

} else {
self.tabBarController?.tabBar.shadowImage = UIImage()
self.tabBarController?.tabBar.backgroundImage = UIImage()
self.tabBarController?.tabBar.clipsToBounds = false

}
self.tabBarController?.tabBar.clipsToBounds = false
self.tabBarController?.tabBar.layer.shadowOpacity = 0.0
self.tabBarController?.tabBar.layer.borderWidth = 0.0
self.tabBarController?.tabBar.layer.applySketchShadow(color: UIColor(red: 15/255, green: 54/255, blue: 136/255, alpha: 1.0), alpha: 0.1, x: 0, y: 0, blur: 25, spread: 0)

0
投票

UIBarAppearance具有shadowImageshadowColor属性。根据需要设置它们。现在,您将它们设置为具有[[no阴影。configureWithTransparentBackground也表示no阴影。因此,您要删除阴影,然后询问阴影在哪里。


0
投票
UITabBarController类中尝试下面的代码

override func viewDidLoad() { super.viewDidLoad() if #available(iOS 13, *) { let appearance = self.tabBar.standardAppearance.copy() appearance.backgroundImage = UIImage() appearance.shadowImage = UIImage() self.tabBar.standardAppearance = appearance } else { self.tabBar.shadowImage = UIImage() self.tabBar.backgroundImage = UIImage() } //Change These values according to your requirement. This will work for all iOS versions self.tabBar.layer.shadowColor = UIColor.lightGray.cgColor self.tabBar.layer.shadowOpacity = 0.3 self.tabBar.layer.shadowRadius = 5 }

enter image description here
© www.soinside.com 2019 - 2024. All rights reserved.