使用相机将多个图像添加到 UIPageViewController
Adding Multiple Images to UIPageViewController using Camera
应用程序开发新手。
我想要做的是让用户从相机拍摄 2 张照片并查看它们。然后将围绕这两张照片进行编码。偏好只是从相机中获取,但也可以从 PhotoLibrary 中获取。
我的想法是,单击一个按钮拍摄第一张照片,然后在 UIPageViewController
中显示该照片,然后通过按下按钮再次调用相机允许他们拍摄另一张照片,然后第二张照片将作为 UIPageViewController
的一部分。因此用户可以滑动底部的 2 个点进行查看,然后 select 确认。
所以我所做的就是遵循 UIImagePickerController
以允许用户从库或相机中 select 并实现 UIPageViewController
。但是很难将两者放在一起。
当我从相机获取图像时,我想我需要保存它。 pageviewcontroller 从 NSMutableArray 获取文件名。
使用 viewDidLoad
... 我调用相机,还有 pageViewController。我的问题是 pageviewcontroller 从 pageImages[] 获取数据,但是如何用图像名称字符串填充数组?我在下面做对了吗?我想我可能有一个问题,一旦我关闭选择器,pageviewcontroller 控制器会自动更新,否则将永远不会从相机获取图像。我在想我可能必须调用相机然后通过 segues 将数据传递给视图控制器?
我的另一个想法是有一个视图控制器,它只显示拍摄的图像,保存它,将文件名添加到数组,然后当用户拍摄另一张照片时,图像被保存并添加到数组,然后通过转到 pageviewcontroller 以便用户能够滚动浏览两者并确认或删除。想法?
override func viewDidLoad() {
super.viewDidLoad()
createPhoto()
self.pageViewController = self.storyboard?.instantiateViewControllerWithIdentifier("PhotoPageViewControllerStoryBoard") as! UIPageViewController
self.pageViewController.dataSource = self
var startVc = self.pageViewControllerAtIndex(0) as PhotoContentPageViewController
var viewControllers = NSArray(object: startVc)
self.pageViewController.setViewControllers(viewControllers as? [UIViewController], direction: .Forward, animated: true, completion: nil)
self.pageViewController.view.frame = CGRectMake(0, -10, self.view.frame.size.width, self.view.frame.size.height-30)
self.addChildViewController(self.pageViewController)
self.view.addSubview(self.pageViewController.view)
self.pageViewController.didMoveToParentViewController(self)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
var newImage: UIImage
if let possibleImage = info["UIImagePickerControllerEditedImage"] as? UIImage {
newImage = possibleImage
} else if let possibleImage = info["UIImagePickerControllerOriginalImage"] as? UIImage {
newImage = possibleImage
} else {
return
}
if (picker.sourceType == UIImagePickerControllerSourceType.Camera) {
let imageName = NSUUID().UUIDString
let imagePath = getDocumentsDirectory().stringByAppendingPathComponent(imageName)
if let jpegData = UIImageJPEGRepresentation(newImage, 80) {
jpegData.writeToFile(imagePath, atomically: true)
}
pageImages!.addObject(imageName)
}
dismissViewControllerAnimated(true, completion: nil)
}
好的,我想我明白了,我更改了数组以从 contentviewcontroller UIImages 而不是文件名字符串传递给 pageviewcontroller。
此外,由于数组为零,我直到拍摄或选择第一张图片后才启动 pageviewcontroller。
下一组代码开始战斗,实际对两个图像做一些事情。很可能在未来……不久的将来需要一些帮助。谢谢。
应用程序开发新手。
我想要做的是让用户从相机拍摄 2 张照片并查看它们。然后将围绕这两张照片进行编码。偏好只是从相机中获取,但也可以从 PhotoLibrary 中获取。
我的想法是,单击一个按钮拍摄第一张照片,然后在 UIPageViewController
中显示该照片,然后通过按下按钮再次调用相机允许他们拍摄另一张照片,然后第二张照片将作为 UIPageViewController
的一部分。因此用户可以滑动底部的 2 个点进行查看,然后 select 确认。
所以我所做的就是遵循 UIImagePickerController
以允许用户从库或相机中 select 并实现 UIPageViewController
。但是很难将两者放在一起。
当我从相机获取图像时,我想我需要保存它。 pageviewcontroller 从 NSMutableArray 获取文件名。
使用 viewDidLoad
... 我调用相机,还有 pageViewController。我的问题是 pageviewcontroller 从 pageImages[] 获取数据,但是如何用图像名称字符串填充数组?我在下面做对了吗?我想我可能有一个问题,一旦我关闭选择器,pageviewcontroller 控制器会自动更新,否则将永远不会从相机获取图像。我在想我可能必须调用相机然后通过 segues 将数据传递给视图控制器?
我的另一个想法是有一个视图控制器,它只显示拍摄的图像,保存它,将文件名添加到数组,然后当用户拍摄另一张照片时,图像被保存并添加到数组,然后通过转到 pageviewcontroller 以便用户能够滚动浏览两者并确认或删除。想法?
override func viewDidLoad() {
super.viewDidLoad()
createPhoto()
self.pageViewController = self.storyboard?.instantiateViewControllerWithIdentifier("PhotoPageViewControllerStoryBoard") as! UIPageViewController
self.pageViewController.dataSource = self
var startVc = self.pageViewControllerAtIndex(0) as PhotoContentPageViewController
var viewControllers = NSArray(object: startVc)
self.pageViewController.setViewControllers(viewControllers as? [UIViewController], direction: .Forward, animated: true, completion: nil)
self.pageViewController.view.frame = CGRectMake(0, -10, self.view.frame.size.width, self.view.frame.size.height-30)
self.addChildViewController(self.pageViewController)
self.view.addSubview(self.pageViewController.view)
self.pageViewController.didMoveToParentViewController(self)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
var newImage: UIImage
if let possibleImage = info["UIImagePickerControllerEditedImage"] as? UIImage {
newImage = possibleImage
} else if let possibleImage = info["UIImagePickerControllerOriginalImage"] as? UIImage {
newImage = possibleImage
} else {
return
}
if (picker.sourceType == UIImagePickerControllerSourceType.Camera) {
let imageName = NSUUID().UUIDString
let imagePath = getDocumentsDirectory().stringByAppendingPathComponent(imageName)
if let jpegData = UIImageJPEGRepresentation(newImage, 80) {
jpegData.writeToFile(imagePath, atomically: true)
}
pageImages!.addObject(imageName)
}
dismissViewControllerAnimated(true, completion: nil)
}
好的,我想我明白了,我更改了数组以从 contentviewcontroller UIImages 而不是文件名字符串传递给 pageviewcontroller。
此外,由于数组为零,我直到拍摄或选择第一张图片后才启动 pageviewcontroller。
下一组代码开始战斗,实际对两个图像做一些事情。很可能在未来……不久的将来需要一些帮助。谢谢。