2016-05-13 73 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

相关问题