一尘不染

UITabBar的圆角

swift

我想创建一个带有圆角的UITabBar。有什么办法可以
使UITabBar具有圆角?它将采用第二
张图片的形状。

该应用程序从tableView开始。当用户点击主题时,它们将被发送
到tabBar控制器。

在此处输入图片说明
这是我想要的形状

    • -编辑 - - -

这是我的AppDelegate:

func application(_application: UIApplication,
willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool{

    let tabBarController = window?.rootViewController as! UITabBarController
    let image = UIImage(named: "bar")
    let tabBarImage = resize(image: image!, newWidth: tabBarController.view.frame.width)
    tabBarController.tabBar.backgroundImage = tabBarImage


    return true
}

func resize(image: UIImage, newWidth: CGFloat) -> UIImage {

UIGraphicsBeginImageContext(CGSize(width: newWidth, height: image.size.height))
image.drawInRect( CGRect(x: 0, y: 0, width: newWidth, height: image.size.height))
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

return newImage!
}

enter image description
here


阅读 880

收藏
2020-07-07

共1个答案

一尘不染

嘿,我使用了tabBar的简单属性,即backgroundImage。

因此,我在didFinisLaunchingWithOptions中添加了appDelegate:

let tabBarController = window?.rootViewController as! UITabBarController
    let image = UIImage(named: "bar")
    let tabBarImage = resize(image: image!, newWidth: tabBarController.view.frame.width)
    tabBarController.tabBar.backgroundImage = tabBarImage

和我的自定义方法来更改图像的大小:

func resize(image: UIImage, newWidth: CGFloat) -> UIImage {

    UIGraphicsBeginImageContext(CGSize(width: newWidth, height: image.size.height))
    image.draw(in: CGRect(x: 0, y: 0, width: newWidth, height: image.size.height)) // image.drawInRect( CGRect(x: 0, y: 0, width: newWidth, height: image.size.height))  in swift 2
    let newImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    return newImage!
}

我使用了png图像作为背景,与您发布的图像相同,但是具有清晰的
颜色而不是黑色。

希望这可以帮助

2020-07-07