将UITabBarSystemItem图标与其他按钮一起使用

时间:2018-09-14 07:29:41

标签: ios swift

是否可以仅通过代码将UITabBarSystemItem图标与其他按钮(例如UIButtonUIBarButtonItem)一起使用,即不使用外部图像?

1 个答案:

答案 0 :(得分:0)

我通过访问UITabBarItem子视图并检索包含图标的UIImageView找到了解决方法。

func getImageFrom(tabBarSystemItem: UITabBarSystemItem, blueColored: Bool) -> UIImage? {
    let tabBar = UITabBar()
    let item = UITabBarItem(tabBarSystemItem: tabBarSystemItem, tag: 0)
    tabBar.items = [item]
    if blueColored { // gray otherwise
        tabBar.selectedItem = item
    }
    let itemView = tabBar.subviews[0]
    let imageView = itemView.subviews[0] as? UIImageView
    //let label = itemView.subviews[1] as? UILabel // this is 'item' label
    return imageView?.image
}

用法:

let buttonImage = getImageFrom(tabBarSystemItem: .more, blueColored: true)

值得一提的是,不正确地使用图标可能会违反iOS人机界面准则,并导致您的应用被App Store拒绝。 Read