【发布时间】:2023-03-17 02:37:01
【问题描述】:
我想在不使用UIImagePickerController 的情况下在我的应用程序中使用自己的按钮拍照。所以,我想在我的视图控制器上有一个视图,它显示实时相机视图和一个带有操作的按钮,我可以在不使用UIImagePickerController 的情况下直接拍照。然后我想在我的视图控制器的视图中显示这张照片。
原因是我不想有第二个屏幕来拍照。处理应该很容易。或者是否有其他解决方案可以在我自己的手柄上拍照?
我使用 Swift 来做到这一点。
目前我在代码中使用UIImagePickerController:
import UIKit
class ViewController2:UIViewController,UIAlertViewDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate,UIPopoverControllerDelegate
{
@IBOutlet weak var btnClickMe: UIButton!
@IBOutlet weak var imageView: UIImageView!
var picker:UIImagePickerController?=UIImagePickerController()
var popover:UIPopoverController?=nil
override func viewDidLoad()
{
super.viewDidLoad()
picker!.delegate=self
}
override func didReceiveMemoryWarning()
{
super.didReceiveMemoryWarning()
}
@IBAction func btnImagePickerClicked(sender: AnyObject)
{
self.openCamera()
}
func openCamera()
{
if(UIImagePickerController .isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera))
{
picker!.sourceType = UIImagePickerControllerSourceType.Camera
self.presentViewController(picker!, animated: true, completion: nil)
}
else
{
openGallary()
}
}
func openGallary()
{
picker!.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
if UIDevice.currentDevice().userInterfaceIdiom == .Phone
{
self.presentViewController(picker!, animated: true, completion: nil)
}
else
{
popover=UIPopoverController(contentViewController: picker!)
popover!.presentPopoverFromRect(btnClickMe.frame, inView: self.view, permittedArrowDirections: UIPopoverArrowDirection.Any, animated: true)
}
}
func imagePickerController(picker: UIImagePickerController!, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]!)
{
picker.dismissViewControllerAnimated(true, completion: nil)
imageView.image=info[UIImagePickerControllerOriginalImage] as UIImage
}
func imagePickerControllerDidCancel(picker: UIImagePickerController!)
{
println("picker cancel.")
}
}
【问题讨论】:
标签: ios xcode swift camera uiimagepickercontroller