2016-05-13 70 views
0

enter image description here我正在約會應用程序。 因此用戶需要在配置文件中更新其圖像。 在個人檔案部分, 有小3圖像意見。 ,如果他們想要添加圖像到每個圖像視圖,他們應該通過UIimagepicker更新每個圖像視圖。 但我知道我只能在UIImagepikerControllerDelegate協議中只使用一個函數。如何添加多個圖像視圖和每個圖像視圖可以執行圖像選擇?

我該怎麼做?下面

是我的失敗代碼

進口的UIKit

類RegisterPicture:UIViewController中,UIImagePickerControllerDelegate,UINavigationControllerDelegate {

@IBAction func pick1(sender: AnyObject) { 

    let picker1 = UIImagePickerController() 

    picker1.sourceType = UIImagePickerControllerSourceType.SavedPhotosAlbum 

    picker1.allowsEditing = true 

    picker1.delegate = self 

    self.presentViewController(picker1, animated: false, completion: nil) 
} 

@IBAction func pick2(sender: AnyObject) { 

    let picker2 = UIImagePickerController() 

    picker2.sourceType = UIImagePickerControllerSourceType.SavedPhotosAlbum 

    picker2.allowsEditing = true 

    picker2.delegate = self 

    self.presentViewController(picker2, animated: false, completion: nil) 
} 

@IBAction func pick3(sender: AnyObject) { 

    let picker = UIImagePickerController() 

    picker.sourceType = UIImagePickerControllerSourceType.SavedPhotosAlbum 

    picker.allowsEditing = true 

    picker.delegate = self 

    self.presentViewController(picker, animated: false, completion: nil) 
} 

@IBOutlet var picture1: UIImageView! 

@IBOutlet var picture2: UIImageView! 

@IBOutlet var picture3: UIImageView! 

func imagePickerController(picker1: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 

    picker1.dismissViewControllerAnimated(false, completion : nil) 


} 

func imagePickerController(picker2: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 

    picker2.dismissViewControllerAnimated(false, completion : nil) 
    self.picture2.image = info[UIImagePickerControllerOriginalImage] as? UIImage 

} 

func imagePickerController(picker3: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 

    picker3.dismissViewControllerAnimated(false, completion : nil) 
    self.picture3.image = info[UIImagePickerControllerOriginalImage] as? UIImage 

} 

func imagePickerControllerDidCancel(picker: UIImagePickerController) { 

    picker.dismissViewControllerAnimated(false, completion:nil) 

} 

func imagePickerControllerDidCancel(picker2: UIImagePickerController) { 

    picker2.dismissViewControllerAnimated(false, completion:nil) 

} 

func imagePickerControllerDidCancel(picker3: UIImagePickerController) { 

    picker3.dismissViewControllerAnimated(false, completion:nil) 

} 

回答

0

不知道如果我明白你需要什麼,但我的建議是,那些UIImageViews可以在一個集合視圖中。

通過這樣做,對於圖像拾取的唯一代表將保存圖像的集合視圖的視圖控制器,你只想更新與攝取的圖像

0

選定單元格你給的標籤給每個ImageView的,當你這個方法

-(void)imagePickerController:(UIImagePickerController)picker didFinishPickingMediaWithInfo:(NSDictionary)info 

用的if else條件,你可以單獨使用每個ImageView的幫助下建立內部和ImageView的 。

+0

你可以檢查我的代碼? – kimpro

+0

你必須使用這個功能,我已經提到沒有這個你不能做你想要的功能,據我所知,每個imageview使用標籤 – 2016-05-13 10:34:20

0

您可以將其創建爲新項目以不處理分配的操作 - 或者您可以清除視圖中的操作和插座,並根據新代碼重新創建。

創建3個UIImageViews,picture1,picture2,picture3。鏈接代碼中的插座。

用3個UIBarButtonItems創建一個UIToolbar。設置欄按鈕項標籤爲1,2,3對應的picture1,picture2,picture3圖像視圖。

連接網點圖像視圖(picture1,2,3)

連接選擇器的動作對所有三個欄按鈕的項目。那些將使用相同的動作,不需要重複代碼,發件人按鈕的標籤將檢測到差異。

按照代碼,它會解釋自己。它只是根據點擊的條形按鈕決定哪個UIImageView是圖像選擇期間的「活動」,然後委託將使用該圖像視圖。

讓我們知道是否沒有意義。

import UIKit 

class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { 

@IBAction func picker(sender: UIBarButtonItem) { 
    imagePicker.allowsEditing = false 
    imagePicker.sourceType = .SavedPhotosAlbum 

    switch sender.tag { 
    case 2: 
     self.imageView = picture2 
    case 3: 
     self.imageView = picture3 
    default: 
     self.imageView = picture1 
    } 


    presentViewController(imagePicker, animated: true, completion: nil) 
} 

@IBOutlet weak var picture1: UIImageView! 
@IBOutlet weak var picture2: UIImageView! 
@IBOutlet weak var picture3: UIImageView! 

var imageView: UIImageView! 
let imagePicker = UIImagePickerController() 


override func viewDidLoad() { 
    super.viewDidLoad() 

    self.imagePicker.delegate = self 

} 

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 
    if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage { 
     self.imageView.contentMode = .ScaleAspectFit 
     self.imageView.image = pickedImage 
    } 

    dismissViewControllerAnimated(true, completion: nil) 
} 

func imagePickerControllerDidCancel(picker: UIImagePickerController) { 
    dismissViewControllerAnimated(true, completion: nil) 
} 
} 

編輯:這是我剛剛上傳的樣本項目: https://github.com/smozgur/Multiple-Image-Picker