【发布时间】:2020-11-29 12:45:59
【问题描述】:
我正在使用陀螺仪来确定我的 ipad 是否垂直(角度为 88 到 92 度)。 如果是那么可以拍照。 我有类似红绿灯的红色或绿色来显示拍照的权限,但是当灯为红色时我无法禁用捕获按钮 任何帮助将不胜感激
这是我的代码
@IBAction func camera1(_ sender: Any) {
var imageView : UIImageView
imageView = UIImageView(frame:CGRect(x:10, y:10, width:50, height:50));
let imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.allowsEditing = true
imagePicker.sourceType = .camera
imagePicker.cameraCaptureMode = .photo
imagePicker.cameraOverlayView = imageView
imagePicker.cameraViewTransform = imagePicker.cameraViewTransform.scaledBy(x: 3, y: 3);
//Gyroscop
func myGyroscope() {
motion.deviceMotionUpdateInterval = 0.2
motion.startDeviceMotionUpdates(to: OperationQueue()) { (motion, error) -> Void in
if let attitude = motion?.attitude {
// print(attitude.roll * 180 / Double.pi)
DispatchQueue.main.async{
if (((attitude.roll * 180 / Double.pi) * -1) > 88 && ((attitude.roll * 180 / Double.pi) * -1) < 92 ){
imageView.image = #imageLiteral(resourceName: "GREEN_Light")//Take picture is permitted
} else{
imageView.image = #imageLiteral(resourceName: "Red_Light")//Take picture is not permitted
}
}
}
}
}
myGyroscope()
present(imagePicker, animated: true, completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let pickedImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
frontpic.contentMode = .scaleAspectFit
if (picker.sourceType.rawValue == 1){//if camera
frontpic.image = pickedImage.cropedToRatio(ratio: 0.33)
} else{//if album
frontpic.image = pickedImage
}
}
dismiss(animated: true, completion: nil)
}
【问题讨论】:
标签: ios swift xcode uiimagepickercontroller