[swift] 카메라를 응용 프로그램에 편입
11832 단어 Swift
하고 싶은 일
응용 프로그램 내의 이미지 투고 기능을 제작할 때 즉석에서 카메라 촬영을 통해 투고 이미지를 준비하고 싶다.
아래의 보도를 참고하여 진행하다.
[아이폰 어플리케이션 최초 개발] 카메라 사용.
[아이폰] UIimagePicker Controller의 카메라 촬영
환경
xcode 11.3
swift 5.1.3
CocoaPods 1.8.4
실시
info.plist의 추기
info.plist
<key>NSPhotoLibraryUsageDescription</key>
<string>写真投稿機能のためのフォトライブラリアクセス</string>
<key>NSCameraUsageDescription</key>
<string>写真投稿機能のためのカメラアクセス</string>
아래와 같이 표시됩니다.storyboard 설치
코드 작성
ViewController.swift
import UIKit
class ViewController: UIViewController {
var postImage:UIImage?
@IBOutlet weak var imageView: UIImageView!
// imageを選ぶボタン
// ライブラリー選択ボタン
@IBOutlet weak var libraryBtn: UIButton!
@IBAction func toLibrary(_ sender: Any) {
addImagePickerView()
}
// カメラ撮影ボタン
@IBOutlet weak var cameraBtn: UIButton!
@IBAction func toCamera(_ sender: Any) {
addCameraView()
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
// imagePickerViewの設定用
extension ViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate{
// カメラの利用
func addCameraView() {
// シミュレーターでやるとカメラが使えないから、クラッシュしないようにアラート表示させる方へ分岐
if !UIImagePickerController.isSourceTypeAvailable(.camera){
let alertController = UIAlertController.init(title: nil, message: "Device has no camera.", preferredStyle: .alert)
let okAction = UIAlertAction.init(title: "Alright", style: .default, handler: {(alert: UIAlertAction!) in
})
alertController.addAction(okAction)
self.present(alertController, animated: true, completion: nil)
}
else{
//imagePickerViewを表示する
let pickerController = UIImagePickerController()
pickerController.sourceType = .camera
pickerController.delegate = self
self.present(pickerController, animated: true, completion: nil)
}
}
// ライブラリーの利用
func addImagePickerView() {
//imagePickerViewを表示する
let pickerController = UIImagePickerController()
pickerController.sourceType = .photoLibrary
pickerController.delegate = self
self.present(pickerController, animated: true, completion: nil)
}
// 以下の二つは、sourceTypeがcameraでもphotoLibraryでも共通
// pickerの選択がキャンセルされた時の処理
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
dismiss(animated: true, completion: nil)
}
// 画像が選択(撮影)された時の処理
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
print("The image was selected")
print(info[UIImagePickerController.InfoKey.originalImage] as! UIImage)
guard let selectedImage = info[UIImagePickerController.InfoKey.originalImage] as! UIImage? else {return}
// imageを格納
imageView.image = selectedImage
self.dismiss(animated: true, completion: nil)
}
}
마지막
나는 애플의 공식 홈페이지를 잘 보고 더 많이 공부하고 싶다.
apple developer : UIImagePickerController
Reference
이 문제에 관하여([swift] 카메라를 응용 프로그램에 편입), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ninoko1995/items/4ddc5affe5c2ee818672텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)