UIView पर कैमरा प्रीव्यू जोड़ना
Swift में अपने डिफ़ॉल्ट UIView पर लाइव कैमरा प्रीव्यू जोड़ने के लिए हम या तो iOS SDK के AVFoundation फ्रेमवर्क या नेटिव UIImagePickerController() का उपयोग कर सकते हैं। इस उदाहरण में हम ImagePicker का उपयोग करेंगे क्योंकि हमारा उद्देश्य UIView पर कैमरा प्रीव्यू प्रस्तुत करना है और ImagePicker उस कार्य के लिए उपयुक्त है। AVFoundation का उपयोग तब किया जा सकता है जब हमें अपने कैमरे पर बहुत अधिक कस्टमाइजेशन या विभिन्न प्रकार के कस्टम एक्शन की आवश्यकता होती है।
UIView पर कैमरा प्रीव्यू दिखाने के चरण:
- UIImagePickerController ऑब्जेक्ट बनाएं
- अपनी क्लास को UIImagePickerControllerDelegate और UINavigationControllerDelegate के अनुरूप बनाएं
- चरण 1 में बनाए गए ऑब्जेक्ट को डेलीगेट असाइन करें
- बनाए गए ऑब्जेक्ट को चाइल्ड के रूप में जोड़ें
- चाइल्ड के व्यू को हमारे UIView में सबव्यू के रूप में जोड़ें
कोड उदाहरण
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib
let imgPicker = UIImagePickerController()
if UIImagePickerController.isCameraDeviceAvailable(UIImagePickerController.CameraDevice.front) {
imgPicker.delegate = self
imgPicker.sourceType = .camera
addChild(imgPicker)
self.view.addSubview(imgPicker.view)
imgPicker.view.frame = self.view.bounds
imgPicker.allowsEditing = false
imgPicker.showsCameraControls = false
imgPicker.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
}
}
इस उदाहरण के लिए हमने कोई फंक्शन नहीं लिखा है और सीधे यहां ऑब्जेक्ट बनाए हैं, लेकिन उन स्थितियों में जहां हमें कुछ वेरिएबल का उपयोग करने की आवश्यकता नहीं हो सकती है, लेजी वेरिएबल्स का उपयोग करना हमेशा एक अच्छा विकल्प होता है।
यह कोड सिम्युलेटर पर काम नहीं करेगा क्योंकि यह कैमरे का उपयोग करता है। जब मैं उपरोक्त कोड को iPhone 7+ पर चलाता हूं, तो नीचे परिणाम उत्पन्न होता है:
