Swift 不能通过拾取新图像来替换在ViewDidIspect中快速显示图像
我使用firebase作为我的后端,并且我在ViewDidDisplay中有一个显示facebook照片图像的功能,这样当用户在viewcontroller时,配置文件图像就会显示出来。我的问题是,每当用户想要通过图像选择器更改配置文件图像时,它只会显示“拾取的图像”1秒钟,然后返回到facebook图像 我认为问题在于显示facebook照片图像功能是否在ViewDidDisplay中?我怎样才能解决它Swift 不能通过拾取新图像来替换在ViewDidIspect中快速显示图像,swift,Swift,我使用firebase作为我的后端,并且我在ViewDidDisplay中有一个显示facebook照片图像的功能,这样当用户在viewcontroller时,配置文件图像就会显示出来。我的问题是,每当用户想要通过图像选择器更改配置文件图像时,它只会显示“拾取的图像”1秒钟,然后返回到facebook图像 我认为问题在于显示facebook照片图像功能是否在ViewDidDisplay中?我怎样才能解决它 override func viewdidappear(){ super.viewdi
override func viewdidappear(){
super.viewdidappear(animated)
self.displayProfilePic(user)
}
func displayProfilePic(user: FIRUser?){
let photoURL = user?.photoURL
struct last {
static var photoURL: NSURL? = nil
}
last.photoURL = photoURL; later one.
if let photoURL = photoURL {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), {
let data = NSData.init(contentsOfURL: photoURL)
if let data = data {
let image = UIImage.init(data: data)
dispatch_async(dispatch_get_main_queue(), {
if (photoURL == last.photoURL) {
self.profilePic.image = image
}
})
}
})
} else {
profilePic.image = UIImage.init(named: "DefaultPic")
}
图像选择器方法
func openGallary(){
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.SavedPhotosAlbum){
print("Pick Photo")
self.imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
self.imagePicker.allowsEditing = true
self.presentViewController(self.imagePicker, animated: true, completion: nil)
}
}
func openCamera(){
if(UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera)){
self.imagePicker.sourceType = UIImagePickerControllerSourceType.Camera
self.imagePicker.allowsEditing = true
self.presentViewController(self.imagePicker, animated: true, completion: nil)
}else{
print("you got no camara")
}
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMeddiaWithInfo info: [String :AnyObject]){
if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
profilePic.contentMode = .ScaleAspectFit
profilePic.image = pickedImage
}
dismissViewControllerAnimated(true, completion: nil)
}
我不知道为什么图像选择器拾取的图像不能被替换
我认为问题在于显示facebook照片图像功能在ViewDidEmbeen中
这是正确的<每次在覆盖视图的VC(例如图像选取器)退出后再次显示视图时,都会调用代码>视图显示
您可以在viewDidLoad
中执行此操作,在加载VC时只调用一次,在完成imagePicker时不再调用
如果不能,则需要跟踪imagePicker是否替换了该图像,并且在调用ViewDidDisplay
时不应再次将其替换为FB图像
我认为问题在于显示facebook照片图像功能在ViewDidEmbeen中
这是正确的<每次在覆盖视图的VC(例如图像选取器)退出后再次显示视图时,都会调用代码>视图显示
您可以在viewDidLoad
中执行此操作,在加载VC时只调用一次,在完成imagePicker时不再调用
如果不能,则需要跟踪imagePicker是否替换了图像,并且在调用
ViewDidDisplay
时不应再次将其替换为FB图像。我已将该方法放在viewDidLoad中,但它不起作用,而且我以前也尝试过。请按照“如果不能,则…”之后的说明操作在我的回答中,我将该方法放在viewDidLoad中,但它不起作用,而且我以前也尝试过。请按照我回答中“如果不能,那么…”之后的说明进行操作