2016-05-13 6 views
0

enter image description here私はデートのアプリを作っています。 ユーザーはプロフィールで画像を更新する必要があります。 プロファイルセクションでは、 小さな画像ビューが3つあります。 それぞれの画像ビューに画像を追加する場合は、 それぞれの画像ビューをUIimagepickerで更新する必要があります。 しかし、私はUIImagepikerControllerDelegateプロトコルで1つの関数しか使用できないことを知っています。複数の画像ビューを追加する方法と各画像ビューは画像ピッカーを行うことができますか?

どうすればいいですか?

は、以下の私の失敗したコードです

輸入の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 

内ImageViewのと を作成しているImageViewの。

+0

あなたは私のコードをチェックすることができ:ここで私はちょうどアップロードサンプルプロジェクトがありますか? – kimpro

+0

あなたは私が知っている限りあなたが望む機能を行うことはできませんが、これがなくても言及しているこの機能を使用する必要があります、各画像ビュー –

0

割り当てられたアクションを処理しないように新しいプロジェクトとして作成することも、ビュー内のアクションとアウトレットをクリアして新しいコードに従って再作成することもできます。

3 UIImageViews、picture1、picture2、picture3を作成します。コード内のアウトレットをリンクします。

3つのUIBarButtonItemでUIToolbarを作成します。 barボタンの項目タグをpicture1、picture2、picture3の画像ビューに対応する1,2,3に設定します。すべての3つのバーボタンアイテムに

画像ビューの接続口(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) 
} 
} 

EDIT: https://github.com/smozgur/Multiple-Image-Picker

関連する問題