UIImage扩展无法正常工作

时间:2016-12-17 22:31:28

标签: swift uiimage extension-methods

所以我试图在我的项目中为tabBarItems设置自定义图标(因为默认选项非常有限)。

显然,图标不会自动调整为30 x 30,因为他们需要这样做我一直尝试使用UIImage扩展手动完成。我只使用过一次或两次扩展,而我真正想做的就是将this answer转换为Swift 3.我的扩展尝试如下:

extension UIImage {

    func scaledToSize(size: CGSize) -> UIImage {
        UIGraphicsBeginImageContextWithOptions(size, false, 0.0)
        images?[0].draw(in: CGRect(x: 0, y: 0, width: size.width, height: size.height))
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image!
    }

}

如果不清楚,应该像这样使用此扩展来实现我的目的:

self.tabBarItem.image = tabBarItemImage?.scaledToSize(size: CGSize(width: 30, height: 30))

我知道这不是最优雅的解决方案,但我认为它会起作用而事实并非如此。我已经尝试使用简单的imageView,但它也无法使用它,所以我不认为这是特别使用tabBarItems这个技术的问题。

如果有人能指出我做错了什么或指导我正确的方向,将非常感激。

1 个答案:

答案 0 :(得分:0)

尝试以下扩展名,

extension UIImageView {
    func scaledToSize(size: CGSize){
        UIGraphicsBeginImageContextWithOptions(size, false, 0.0)
        self.image!.draw(in: CGRect(x: 0, y: 0, width: size.width, height: size.height))
        let imageed = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        self.image = imageed
    }
}