私はSwiftの初心者です。UIImageの問題からTabbar Item Imageを追加
私は質問があります。
UIImageからTabbar Itemイメージを追加すると、何も表示されません。
タブバーアイテムではありませんが、画像はうまく表示され、アセットからタブバーアイテムへの読み込みイメージはうまく機能します。
私は既に画像を読み込んだ画像をリサイズしたタブバーではなく、その画像のサイズを変更しています。
だから私はそれをどうやって行うのがとても混乱しています。ここで
これは、負荷である私のコード
である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 = ""
}
私はアプリケーションを実行
は、その後、ちょうど灰色の絵が現れました。 このtemp_tabbar_profileを他のビューの画像view.imageにロードすると、 がうまく読み込まれました!私は何が間違っているのか分かりません。
私の問題をお読みいただきありがとうございます。
私はあなたが何を意味しているか正確には分かりません。 tabBarItem = tabBarItems [0]これは正しいですか? –
私は何とかツールバーを読んですみません。 -.-サイズを変更する必要がないかもしれない別のイメージで動作するかどうかチェックしましたか? – Adarkas2302
Oryourは 'tabBarItems [0] .image = temp_tabbar_profile.withRenderingMode(.alwaysOriginal)'を試すことができます。私は小さな画像でそれを試して、それは正常に動作します。画像のサイズを変更している間に画像が破損している可能性があります。 – Adarkas2302