Tocropviewcontroller: рдЖрдИрдУрдПрд╕ 13.1 . рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 30 рдЕрдЧре░ 2019  ┬╖  16рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: TimOliver/TOCropViewController

рдлрд╝реЛрдЯреЛ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХреНрд░реЙрдкрд┐рдВрдЧ рджреГрд╢реНрдп рдореЗрдВ рдХреЗрд╡рд▓ рдХрд╛рд▓реА рдЦрд╛рд▓реА рдЫрд╡рд┐ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред (реи.рек.реж рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛, рддреЗрдЬ рел)

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдмрджрд▓рдиреЗ рдХреЗ
cropViewController.dismiss(animated: true, completion: nil).

рд╕рд╛рде рдореЗрдВ
let viewController = cropViewController.children.first! viewController.modalTransitionStyle = .coverVertical viewController.presentingViewController?.dismiss(animated: true, completion: nil)

рд╕рднреА 16 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдкреНрд░рддрд┐рдкреБрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рдордп рдирд╣реАрдВ рд╣реИ рдЗрд╕рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреЗ рдирд┐рджрд╛рди рдореЗрдВ рдХрд┐рд╕реА рднреА рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреА!

рдЯрд┐рдо рдУрд▓рд┐рд╡рд░ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рдмрд╛рд░ рдЕрдВрддрд┐рдо рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ w/рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рдореБрджреНрджрд╛ рд╣реИред

createDataWithMappedFile:1508:  'open' failed '/var/mobile/Media/PhotoData/CPLAssets/group498/E850D458-F829-4B19-8FBF-95D6F6CC34BA.HEIC'    error = 1 (Operation not permitted)

рдХреНрдпрд╛ рдЖрдк рд╡рд╣реА рд▓реЙрдЧ рджреЗрдЦрддреЗ рд╣реИрдВ?

рдореЗрд░реЗ рдРрдк рдореЗрдВ рдкреВрд░реНрдг рдПрд▓реНрдмрдо рдЕрдиреБрдорддрд┐ рд╣реИред рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рдпрд╣реА рдорд╛рдорд▓рд╛ рд╣реЛрдЧрд╛ред

рдпрд╣ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ 13.1 рдмреАрдЯрд╛2 рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ 13.1 рдмреАрдЯрд╛ 1 рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдЧ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдореИрдВ рдФрд░ рдЕрдзрд┐рдХ рдкрд░реАрдХреНрд╖рдг рдЬрд╛рдирдХрд╛рд░реА рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛:

(рез) рдореЗрд░рд╛ рдРрдк рдлреЛрдЯреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдХреНрд╕реЗрд╕ рдХреА рд╕реНрдкрд╖реНрдЯ рдЕрдиреБрдорддрд┐ рдХрд╛ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред (https://stackoverflow.com/questions/46404628/ios11-photo-library-access-is-possible-even-if-settings-are-set-to-never)
(реи) iOS резреи.рек.рез (рдирд╡реАрдирддрдо) рддрдХ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА - рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ!
(рей) рдЖрдИрдУрдПрд╕ резрей.реж рдмреАрдЯрд╛ рдореЗрдВ рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг резрей.реж рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред
(рек) рдореБрдЭреЗ резрей.рез рдмреАрдЯрд╛ рез . рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реА
(рел) рд╕рдорд╕реНрдпрд╛ резрей.рез рдмреАрдЯрд╛ реи . рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рддрдп рдХреА рдЧрдИ рдереА

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдореЗрд░реЗ рд╕рд╛рде рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдпрд╛ iOS 13 рдореЗрдВ рдЕрдиреБрдорддрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдордд рджреЗрдВред рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ https://github.com/TimOliver/TOCropViewController/issues/365 . рдХреЗ рд╕рд╛рде рд╣рд▓ рд╣реЛ рдЧрдИ рдереА

рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИред рдЫрд╡рд┐ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХреЗрд╡рд▓ рдХрд╛рд▓реА рд╕реНрдХреНрд░реАрди рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред

рдмрджрд▓рдиреЗ рдХреЗ
cropViewController.dismiss(animated: true, completion: nil).

рд╕рд╛рде рдореЗрдВ
let viewController = cropViewController.children.first! viewController.modalTransitionStyle = .coverVertical viewController.presentingViewController?.dismiss(animated: true, completion: nil)

@ Stijnk008 рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рд░реЗрдкреЛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

@Stijnk008 рдЖрдк рд╕рд╛рд╣рдм рдПрдХ рдкрд░рдо рдХрд┐рдВрд╡рджрдВрддреА рд╣реИрдВ! рдЖрдкрдиреЗ рд▓рд╛рдЗрд╡ рдбреЗрдореЛ рдбреЗ рд╕реЗ рдХреБрдЫ рдШрдВрдЯреЗ рдкрд╣рд▓реЗ рд╣реА рдореБрдЭреЗ рдмрдЪрд╛рдпрд╛ рдерд╛ред рдУрд╣ !

рдЕрднреА рднреА рдирд╡реАрдирддрдо рдЖрдзрд┐рдХрд╛рд░рд┐рдХ 13.1.2 рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ Stjnk008 рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЕрднреА рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЕрджреНрдпрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
рдХреНрдпрд╛ рдХреЛрдИ рд╕рдордЭрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдирдП рдЖрдИрдУрдПрд╕ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдпрд╣ рдЕрдЬреАрдм рдХреНрдпреЛрдВ рд╣реИ?

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        guard let image = (info[UIImagePickerController.InfoKey.originalImage] as? UIImage) else { return }
        let cropController = CropViewController(croppingStyle: croppingStyle, image: image)
        cropController.delegate = self
        cropController.customAspectRatio = CGSize(width: 1.0,height: 1.2)
        cropController.aspectRatioLockEnabled = true
        cropController.resetAspectRatioEnabled = false
        cropController.modalPresentationStyle = .fullScreen

        picker.dismiss(animated: true, completion: {
            let viewController = cropController.children.first!
            viewController.modalTransitionStyle = .coverVertical
            viewController.presentingViewController?.dismiss(animated: true, completion: nil)
// the code below allows you to present the cropController ( for me )
            self.row?.delegate?.present(cropController, animated: true, completion: nil)  
        })
    }

рджреЛрд╕реНрддреЛрдВ! рдЙрдо, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрднреА рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ modalPresentationStyle = .fullScreen рдЬреЛрдбрд╝рд╛ рд╣реИред рдпрд╣ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛ред

рдпрджрд┐ рдЖрдкрдХреЛ рдЕрднреА рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдареАрдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ?

рдЗрд╕ рдмреАрдЪ, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЧреИрд░-FaceID рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдмрд╣реБрдд рд╕реА рджреГрд╢реНрдп рдЧрдбрд╝рдмрдбрд╝реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЕрдм рдЗрд╕реЗ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдиреА рд╣реЛрдЧреАред

рдзрдиреНрдпрд╡рд╛рдж!

@ Stijnk008 рдмрд╕ рдореИрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдзрдиреНрдпрд╡рд╛рдж

рдардВрдбрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВ рдЕрдЧрд░ рдХреЛрдИ рдФрд░ рднреА рдЗрд╕реА рдореБрджреНрджреЗ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

tiviti picture tiviti  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

piyushlodaliya picture piyushlodaliya  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

muranobu picture muranobu  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

anuradhss picture anuradhss  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ClaesClaes picture ClaesClaes  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ