所以我试图在我的项目中为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这个技术的问题。
如果有人能指出我做错了什么或指导我正确的方向,将非常感激。
答案 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
}
}