2015-01-02 55 views
0

我是iOS,iOS開發人員和Swift新手。UIImage顯示藍色矩形而不是JPEG圖像

我想有一個帶按鈕的酒吧按鈕。它應該顯示用戶的Facebook頭像。來自Facebook的頭像是JPEG格式。

這是我到目前爲止有:

class MyViewController: UIViewController { 

@IBOutlet weak var userButton: UIBarButtonItem! 

var user: User? 

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.user = UserClient.sharedInstance.user 
    println(self.user?.pictureUrl) 

    if let pictureUrl = self.user?.pictureUrl { 

     let url = NSURL(string: pictureUrl) 
     let data = NSData(contentsOfURL: url!) 
     userButton.image = UIImage(data: data!) 
    } 
} 
... 

的問題:它會顯示一個藍色的矩形,而不是用戶的化身。

It displays a blue rectangle instead of the user's avatar

我最初的想法:

  1. 要麼userButton.image根本就不是正確的屬性
  2. ...或者我需要像
  3. 轉換......或兩者?

回答

1

您可以用了setBackgroundImage設置背景圖片來代替:forState:barMetrics :,或者您可以使用setImage,但你必須在圖像的渲染模式,明確設置爲UIImageRenderingModeAlwaysOriginal(你看到的是一個模板圖像)。

if let pictureUrl = self.user?.pictureUrl { 

    let url = NSURL(string: pictureUrl) 
    let data = NSData(contentsOfURL: url!) 
    let img = UIImage(data: data!) 
    let originalImage = img!.imageWithRenderingMode(.AlwaysOriginal) 
    userButton.image = originalImage 
} 
+0

謝謝,它的工作! – mitchkman

0

你也可以使用圖片作爲背景:

userButton.setBackgroundImage(UIImage(named:"3.jpg"), forState: .Normal) 
相關問題