2017-01-06 12 views
0

私は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にロードすると、 がうまく読み込まれました!

私は何が間違っているのか分かりません。

私の問題をお読みいただきありがとうございます。

答えて

1

tabBarItems[0].image = temp_tabbar_profile.withRenderingMode(.alwaysOriginal)を使用してください。または、UITabBarはあなたのイメージを抽象的な方法で表示します。

+0

私はあなたが何を意味しているか正確には分かりません。 tabBarItem = tabBarItems [0]これは正しいですか? –

+0

私は何とかツールバーを読んですみません。 -.-サイズを変更する必要がないかもしれない別のイメージで動作するかどうかチェックしましたか? – Adarkas2302

+0

Oryourは 'tabBarItems [0] .image = temp_tabbar_profile.withRenderingMode(.alwaysOriginal)'を試すことができます。私は小さな画像でそれを試して、それは正常に動作します。画像のサイズを変更している間に画像が破損している可能性があります。 – Adarkas2302