Search
Duplicate

(커스텀)델리게이트 + 노티 + 피커뷰

생성일
2023/07/05 14:26
태그
Swift

(커스텀)델리게이트 + 노티 + 피커뷰

import PhotosUI extension ViewController: PHPickerViewControllerDelegate { func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) { // 피커뷰 dismiss picker.dismiss(animated: true) let itemProvider = results.first?.itemProvider if let itemProvider = itemProvider, itemProvider.canLoadObject(ofClass: UIImage.self) { itemProvider.loadObject(ofClass: UIImage.self) { (image, error) in DispatchQueue.main.async { // 이미지뷰에 표시 self.detailView.mainImageView.image = image as? UIImage } } } else { print("이미지를 불러오지 못했습니다.") } } }
Swift
복사
func setupImagePicker() { // 기본설정 세팅 var configuration = PHPickerConfiguration() configuration.selectionLimit = 0 configuration.filter = .any(of: [.images, .videos]) // 기본설정을 가지고, 피커뷰 컨트롤러 생성 let picker = PHPickerViewController(configuration: configuration) // 피커뷰 컨트롤러의 대리자 설정 picker.delegate = self // 피커뷰 띄우기 self.present(picker, animated: true, completion: nil) }
Swift
복사
// MARK: - 이미지뷰가 눌렸을 때의 동작 과정 // 제스처 설정 (이미지뷰가 눌리면 실행) func setupTapGestures() { let tapGesture = UITapGestureRecognizer(target: self, action: #selector(touchUpImageView)) detailView.mainImageView.addGestureRecognizer(tapGesture) detailView.mainImageView.isUserInteractionEnabled = true } @objc func touchUpImageView() { print("이미지뷰 터치") setupImagePicker() }
Swift
복사