Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift-在1个ViewController中的2个UIImageView中显示两个单独的图像_Ios_Swift_Parse Platform_Uiimage - Fatal编程技术网

Ios Swift-在1个ViewController中的2个UIImageView中显示两个单独的图像

Ios Swift-在1个ViewController中的2个UIImageView中显示两个单独的图像,ios,swift,parse-platform,uiimage,Ios,Swift,Parse Platform,Uiimage,我想在一个viewcontroller上显示两个图像,从摄影机卷中选择它们 我已经设法找到了相机辊,以便能够选择它们,但当我选择一个图像时,它会将它们放置在两个UIImageView中 我希望能够在UIImageView中显示两个不同的图像 func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {

我想在一个viewcontroller上显示两个图像,从摄影机卷中选择它们

我已经设法找到了相机辊,以便能够选择它们,但当我选择一个图像时,它会将它们放置在两个UIImageView中

我希望能够在UIImageView中显示两个不同的图像

 func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
        //handle media here i.e. do stuff with photo

        print("imagePickerController called")


        if let chosenImage = info[UIImagePickerControllerEditedImage] {
        profileImage.image = chosenImage as? UIImage

        let user: PFUser = PFUser.currentUser()!
        let profileImageData = UIImageJPEGRepresentation(profileImage.image!, 1)
        if (profileImageData != nil)
        {
            let profileFileObject = PFFile(data: profileImageData!)
            user.setObject(profileFileObject!, forKey: "profilePicture")
            }
        }
到目前为止,我可以选择一个图像并将其保存以成功解析,但当我尝试为另一个UIImageView添加其他代码时,如下所示:

            if let chosenCoverImage = info[UIImagePickerControllerEditedImage] {
            coverImage.image = chosenCoverImage as? UIImage

            let coverUser: PFUser = PFUser.currentUser()!
            let coverImageData = UIImageJPEGRepresentation(coverImage.image!, 1)
            if (coverImageData != nil)
            {
                let coverFileObject = PFFile(data: coverImageData!)
                coverUser.setObject(coverFileObject!, forKey: "coverPicture")
                }}
            }
但是代码的第二部分似乎不起作用,基本上它在两个UIImageView中显示相同的图像,我想我需要的是第二部分

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
}
但这在同一份swift文件中是不可能的

有没有关于我如何做到这一点的想法

提前谢谢你

这是我的完整imagePickerConytoller代码:

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
        //handle media here i.e. do stuff with photo

        print("imagePickerController called")


        let chosenImage = info[UIImagePickerControllerEditedImage] as? UIImage
        profileImage.image = chosenImage

        let user: PFUser = PFUser.currentUser()!
        let profileImageData = UIImageJPEGRepresentation(profileImage.image!, 1)
        if (profileImageData != nil)
        {
            let profileFileObject = PFFile(data: profileImageData!)
            user.setObject(profileFileObject!, forKey: "profilePicture")
            }

        let chosenCoverImage = info[UIImagePickerControllerEditedImage] as? UIImage
        coverImage.image = chosenCoverImage

        let coverUser: PFUser = PFUser.currentUser()!
        let coverImageData = UIImageJPEGRepresentation(coverImage.image!, 1)
        if (coverImageData != nil)
        {
            let coverFileObject = PFFile(data: coverImageData!)
            coverUser.setObject(coverFileObject!, forKey: "coverPicture")
            }

        activityIndicator = UIActivityIndicatorView(frame: CGRectMake(0, 0, 50, 50))
        activityIndicator.center = self.profileImage.center
        activityIndicator.hidesWhenStopped = true
        activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.White
        view.addSubview(activityIndicator)
        activityIndicator.startAnimating()
        activityIndicator.color = UIColor.grayColor()

        user.saveInBackgroundWithBlock { (success:Bool, error:NSError?) -> Void in
            self.activityIndicator.stopAnimating()
                    }


        dismissViewControllerAnimated(true, completion: nil)
    }
下面是我如何从ViewDidLoad中的解析中获取它们:

if (PFUser.currentUser()?.objectForKey("profilePicture") != nil)
        {
            let userImageFile:PFFile = PFUser.currentUser()?.objectForKey("profilePicture") as! PFFile
            userImageFile.getDataInBackgroundWithBlock({ (imageData: NSData?, error: NSError?) -> Void in
                self.profileImage.image = UIImage(data: imageData!)
            })
        }

        if (PFUser.currentUser()?.objectForKey("coverPicture") != nil)
        {
            let userCoverFile:PFFile = PFUser.currentUser()?.objectForKey("coverPicture") as! PFFile
            userCoverFile.getDataInBackgroundWithBlock({ (imageData: NSData?, error: NSError?) -> Void in
                self.coverImage.image = UIImage(data: imageData!)
            })
        }

这不会是完整的,但会有你需要的关键部分

class ResponsePhotoController: UIViewController, UIImagePickerControllerDelegate
{
    var imageType : Int = 0  // use this to track the image type
                             // 0 for profile
                             // 1 for cover
在您的代码中,获取配置文件图像

imageType = 0
然后当你去拿封面的时候

imageType = 1
然后在imagePickerController中

if imageType == 0
{
    // set up the profile picture
}
else
{
    // set up the cover image
}
你可以使用字符串“CameraFor”点击这里的相机按钮。 在配置文件摄影机按钮上设置字符串单击“ImageForProfile” 在封面相机按钮上设置字符串单击“ImageForCoverPhoto”

类ResponsePhotoController:UIViewController、UIImagePickerController和Elegate { imageType:Int=0//使用此函数查找图像类型公共类变量

if CameraFor == "ImageForProfile" {
   //set image here for profile

 } 
else {
   //set image here for ImageForCoverPhoto 
     }           

}

上面的前两个代码片段是否包含在同一个imagePickerController中?除非缺少一些代码,否则它将使用相同的图像执行相同的操作两次。您只需要在类中使用一个变量来跟踪您正在处理的图像,并将图像放入profileImage或coverImageHey@Russell是的,它们在同一个imagePickerController中,可以吗?可以,它可以工作-但您必须记住,只有在您已经做出选择时,您才能访问imagePickerController。您需要做的是调用该函数两次-每种类型的图像调用一次,并且您需要一些东西来跟踪您正在处理的图像on@Russell我已经更新了上面的代码、ViewDidLoad和完整的imagePickerController代码。@Russell实际上在你的评论之后,我又看了一眼,我不认为我在告诉我发布的代码上面哪个按钮被按下了!!对不起,我对Parse一无所知!我的例子是使用CoreData。听起来你需要发布一个单独的问题哈哈,我的错,我把你和另一个Russell搞混了,没意识到!!