Как я могу получить ImagePicker для создания стандартного круглого изображения для всех пользователей в Firebase? - PullRequest
0 голосов
/ 27 июня 2019

Итак, у меня есть средство выбора изображений, но оно не заставляет изображения обрезаться по кругу, чтобы они были однородными.

Я пытался использовать CropViewController и RSKImageCropper, но получил различные ошибки.

 @IBAction func press(_ sender: Any) {

    imagePicker = UIImagePickerController()
    imagePicker.delegate = self

    if UIImagePickerController.isSourceTypeAvailable(.camera){
        imagePicker.sourceType = UIImagePickerControllerSourceType.photoLibrary
        imagePicker.cameraCaptureMode  = .photo
    } else {
        imagePicker.sourceType = .photoLibrary    
    }
    self.present(imagePicker, animated: true, completion: nil)       
    self.imagePicker.allowsEditing = true     
}

//// затем вниз

func cropViewController(_ cropViewController: TOCropViewController?, didCropToCircularImage image: UIImage?, with cropRect: CGRect, angle: Int) {
    // 'image' is the newly cropped, circular version of the original image
}

UIImagePickerControllerDelegate Методы

extension FeedVC : UIImagePickerControllerDelegate, UINavigationControllerDelegate {

     func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        let image = info[UIImagePickerControllerOriginalImage] as! UIImage
        self.takenImage = image
        self.UIImageView.image = self.takenImage
        self.dismiss(animated: true, completion: nil)

        if UIImageView.image == nil {
             //Do stuff for nil image
        }
    }

   func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
     self.dismiss(animated: true, completion: nil)
   }
}

В конце концов мне нужно, чтобы средство выбора изображений обрезало изображения по кругу, чтобы оно было однородным.

1 Ответ

3 голосов
/ 27 июня 2019

Вы также можете обрезать размер квадрата изображения, например 40x40, после этого установите свойства UIImageView для видимости круга.

override func viewDidLoad() {
    super.viewDidLoad()
    imageView.clipsToBounds = true
}

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    imageView.layer.cornerRadius = imageView.frame.width / 2
}

И убедитесь, что ограничения imageView имеют соотношение сторон 1: 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...