我有一个更新照片按钮,该按钮连接到facebookgraphAPI并下载当前用户的个人资料图片.
我希望刷新视图上的图像,而无需重新加载viewController.
有什么办法可以做到这一点?我知道tableview具有reloadData和refreshcontrol,但是我没有使用tableview.
class ProfileViewController: UIViewController , UITextViewDelegate{
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var profileTextView: UITextView!
@IBAction func updatePicture(sender: UIButton) {
// pulls in latest facebook profile info
let vc = ViewController()
vc.getFBUserInfo(PFUser.currentUser()!)
dispatch_async(dispatch_get_main_queue(), { () -> Void in
self.imageView.setNeedsDisplay()
self.loadPhoto()
})
}
override func viewDidLoad() {
super.viewDidLoad()
loadProfile()
loadPhoto()
}
func loadPhoto() {
currentUser()?.getPhoto({
image in
self.imageView.layer.masksToBounds = true
self.imageView.contentMode = .Center
self.imageView.image = image
})
}
func loadProfile () {
nameLabel.text = currentUser()?.name
// get the existing profile from DB
if let profile = PFUser.currentUser()!.objectForKey("profileText") as? String {
profileTextView.text = profile
}
profileTextView.delegate = self
}
User.swift getPhoto函数:
func getPhoto(callback:(UIImage) -> ()) {
let imageFile = pfUser.objectForKey("picture") as! PFFile
imageFile.getDataInBackgroundWithBlock({
data, error in
if let data = data {
callback(UIImage(data: data)!)
}
})
}