【问题标题】:ImagePicker Confirmation View AlignmentImagePicker 确认视图对齐
【发布时间】:2019-04-14 23:00:13
【问题描述】:

我正在使用 UIImagePickerController 拍照。拍完照片后,我会看到确认拍摄或重拍。此视图的对齐方式不同,它似乎与屏幕底部对齐。有没有办法将两个视图对齐到屏幕顶部,或者我可以跳过这一步吗?

imagePickerController = UIImagePickerController()
imagePickerController.delegate = self

//check if camera is available
if UIImagePickerController.isSourceTypeAvailable(.camera) {
    imagePickerController.sourceType = .camera
} else {
    imagePickerController.sourceType = .photoLibrary
}

self.present(imagePickerController, animated: true, completion: nil)

【问题讨论】:

    标签: swift uiimagepickercontroller


    【解决方案1】:

    好吧,您不能使用自定义控件显示该确认屏幕。这是一个非常简单的例子:

    class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    
      @IBOutlet weak var textField: UITextField!
      var imagePickerController: UIImagePickerController!
    
      override func viewDidLoad() {
        super.viewDidLoad()
    
        guard UIImagePickerController.isSourceTypeAvailable(.camera) else { return }
        imagePickerController = UIImagePickerController()
        imagePickerController.sourceType = .camera
        imagePickerController.showsCameraControls = false
        imagePickerController.delegate = self
    
        // Button to take picture
        let takePictureButton = UIButton()
        takePictureButton.setTitle("Take Picture", for: .normal)
        imagePickerController.view.addSubview(takePictureButton)
    
        // Positioning button
        takePictureButton.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
          takePictureButton.centerXAnchor.constraint(equalTo: imagePickerController.view.centerXAnchor),
          takePictureButton.bottomAnchor.constraint(equalTo: imagePickerController.view.bottomAnchor, constant: -50)
          ])
    
        // Set button target
        takePictureButton.addTarget(self, action: #selector(didTouchTakePictureButton(_:)), for: .touchUpInside)
    
        self.present(imagePickerController, animated: true, completion: nil)
      }
    
      @objc func didTouchTakePictureButton(_ sender: UIButton) {
        imagePickerController.takePicture()
      }
    
      func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        guard let image = info[.originalImage] as? UIImage else { return }
      }
    }
    

    但请注意以下事项: 1. 源类型只能使用.camera; 2.您没有任何控件,因此您必须自己添加所有自定义;

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2014-09-28
      • 1970-01-01
      • 1970-01-01
      • 2013-06-15
      • 1970-01-01
      • 2020-03-16
      • 1970-01-01
      • 1970-01-01
      • 2011-11-18
      相关资源
      最近更新 更多