我是斯威夫特的新手。
我有一个问题。
当我从一个UIImage添加Tabbar项目图像时,没有显示任何内容。
虽然,不在Tabbar项目中,图像显示良好,从资产加载到标签栏项目的图像效果很好。
我已经调整了那个东西,而不是在标签栏中调整了图像加载大小。
所以,我很困惑如何做到这一点。
这是我的代码
这是来自Facebook个人资料图片的负载
FBSDKGraphRequest(graphPath: "/me", parameters: ["fields": "email, id, name, picture"]).start { (connection, result, err) in
if err != nil {
print("FBLogin Error: \(err)")
return
}
print(result!)
let dd = result as! [String : AnyObject]
let test = (dd["picture"]!["data"]!! as! [String: AnyObject])["url"]
let url = URL(string: test as! String)
let data_picture = try? Data(contentsOf: url!)
var temp_img = UIImage()
temp_img = UIImage(data: data_picture!)!
temp_tabbar_profile = self.resizeImage(image: temp_img, targetSize: CGSize(width: 30, height: 30))
temp_tabbar_profile是UIImage
这是调整代码。
func resizeImage(image: UIImage, targetSize: CGSize) -> UIImage {
let size = image.size
let widthRatio = targetSize.width / image.size.width
let heightRatio = targetSize.height / image.size.height
// Figure out what our orientation is, and use that to form the rectangle
var newSize: CGSize
if(widthRatio > heightRatio) {
newSize = CGSize(width: size.width * heightRatio, height: size.height * heightRatio)
} else {
newSize = CGSize(width: size.width * widthRatio, height: size.height * widthRatio)
}
// This is the rect that we've calculated out and this is what is actually used below
let rect = CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height)
// Actually do the resizing to the rect using the ImageContext stuff
UIGraphicsBeginImageContextWithOptions(newSize, false, 1.0)
image.draw(in: rect)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage!
}
这是设置标签栏图像代码
override func viewDidLoad() {
super.viewDidLoad()
let tabBarItems = tabBar.items! as [UITabBarItem]
tabBarItems[0].selectedImage = temp_tabbar_profile
tabBarItems[0].image = temp_tabbar_profile
tabBarItems[0].title = ""
}
当我运行app时,只出现了灰色图片。 当我在其他视图的图像view.image中加载此temp_tabbar_profile时, 装好了!!!
我不知道出了什么问题。
感谢您阅读我的问题。
答案 0 :(得分:1)
您应该使用tabBarItems[0].image = temp_tabbar_profile.withRenderingMode(.alwaysOriginal)
。或者UITabBar将以抽象的方式显示您的图像。