Tocropviewcontroller: استبعاد مشكلات النقل (iOS 13)

تم إنشاؤها على ٨ أغسطس ٢٠١٩  ·  23تعليقات  ·  مصدر: TimOliver/TOCropViewController

لقد واجهت مشكلة عند تقديم وحدة تحكم الاقتصاص عبر وحدة تحكم التنقل.

عند استبعاد وحدة التحكم في الاقتصاص ، في نهاية الانتقال ، تتم إزالة عرض وحدة التحكم في التنقل ولا يتم عرضها ... (يحدث في iPhone و iPad وفقط في iOS 13).

ناهيك عن أن التنقل لا يزال موجودًا وأن واجهة المستخدم "عالقة".

bug

التعليق الأكثر فائدة

 func cropViewController(_ cropViewController: CropViewController, didFinishCancelled cancelled: Bool) {
        //This code fails on iOS13.
        //cropViewController.dismiss(animated: true)

        let viewController = cropViewController.children.first!
        viewController.modalTransitionStyle = .coverVertical
        viewController.presentingViewController?.dismiss(animated: true, completion: nil)
    }

تعمل هذه الطريقة بشكل جيد على نظام iOS 13.
لا اعرف لماذا.

أتوقع منك أن تجد طريقة أفضل.

https://www.dropbox.com/s/wyzc8errinfap1f/TestCrop.zip؟dl=0

ال 23 كومينتر

تضمين التغريدة قد تضطر إلى أن تريني ، آسف! هل يمكنك إرفاق لقطة شاشة؟

لقطات الشاشة المرفقة ...

  1. تقديم مشروط مع منتقي الصور.
  2. الصورة المختارة
  3. الحالية تحكم المحاصيل من تلك الخلية
  4. بعد الإلغاء ، يتسبب الرفض في اختفاء منتقي الصور (وأنت ترى وحدة تحكم العرض الأولية - لقد قمت بتلوين وحدة التحكم باللون الأبيض)

أتمنى أن تكون الأمور أكثر وضوحا ..
1
2
3
4

حسنًا ، أنت تقدمه داخل وحدة تحكم عرض أخرى؟

أتساءل عما إذا كان رمز الرفض هذا ينتهي برفض وحدة التحكم في العرض الخاطئ ، ثم:

https://github.com/TimOliver/TOCropViewController/blob/8770be8407540f5873fe714870771cea8a382ac7/Objective-C/TOCropViewController/TOCropViewController.m#L895

هل يمكنك محاولة تغيير الرمز هناك ومعرفة ما إذا كان يمكنك العثور على مجموعة تعمل على إصلاحه؟

بدون أن أكون قادرًا على اختباره بنفسي ، لا يوجد شيء يمكنني القيام به من نهايتي. آسف!

لقد جربت أي شيء تقريبًا ، لكنني سأحاول مرة أخرى ..
لم يتم استبعاد وحدة التحكم الموجودة في الخلف .. تتم إزالة العرض (وهو أمر غريب).

هل جربت هذه التعليمات البرمجية قبل تقديم CropViewController؟

if #available(iOS 13.0, *) {
 cropViewController.modalPresentationStyle = .fullScreen
}

حاولت هذا الصباح. إنه يحل الخطأ ولكن الرسوم المتحركة هي الرسوم المتحركة المشروطة الافتراضية (من الأسفل إلى الأعلى).
الرسوم المتحركة الخاصة من العرض / الإطار لا تعمل مع هذا الحل

uchiaTziki هل وجدت أي إصلاح؟

هل هذا قابل للتكرار في نموذج التطبيق على الإطلاق؟ إذا كان الأمر كذلك ، فمن المحتمل أن ألقي نظرة عليه.

طريقة عمل العروض التقديمية المشروطة في iOS 13 تغيرت عن الإصدارات السابقة من iOS. لكن لم تتح لي فرصة جيدة للتوصل إلى ما نحتاج إلى فعله بالضبط لتحديث الكود الخاص بذلك حتى الآن.

بقدر ما أستطيع أن أرى ، فإنه لا يعمل بشكل صحيح عندما يكون لديك ما يلي:

  • تدفع أداة التحكم في التنقل (أ) أداة التحكم في العرض (ب)
  • عرض وحدة التحكم (B) تقدم عرض وحدة التحكم (C) كورقة نموذج
  • عرض المراقب (C) يعرض CropViewController
  • انقر فوق إلغاء أو تم على CropViewController وستتمكن من اكتشاف الخطأ.

آسف كنت في إجازة.

هل جربت هذه التعليمات البرمجية قبل تقديم CropViewController؟

if #available(iOS 13.0, *) {
 cropViewController.modalPresentationStyle = .fullScreen
}

باستخدام ذلك ( TimOliver ) في أحدث إصدار تجريبي من Xcode ، نجح الأمر. لذا فإن الرسوم المتحركة الانتقالية تعمل معي الآن.

هذا عمل معي ايضا

 func cropViewController(_ cropViewController: CropViewController, didFinishCancelled cancelled: Bool) {
        //This code fails on iOS13.
        //cropViewController.dismiss(animated: true)

        let viewController = cropViewController.children.first!
        viewController.modalTransitionStyle = .coverVertical
        viewController.presentingViewController?.dismiss(animated: true, completion: nil)
    }

تعمل هذه الطريقة بشكل جيد على نظام iOS 13.
لا اعرف لماذا.

أتوقع منك أن تجد طريقة أفضل.

https://www.dropbox.com/s/wyzc8errinfap1f/TestCrop.zip؟dl=0

مرحبًا ، لقد واجهت الخطأ في iOS 13.1

إذا كنت أستخدم
dismiss(animated: true, completion: nil)
على iOS 13.1 ،

تختفي كل وحدة تحكم ViewController.

crop

لا اعرف لماذا.

كان علي فقط تعيين cropViewController.modalTransitionStyle = .coverVertical كحل بديل لأنه لم يعد يستخدم النقل المخصص بعد الآن ...

نفس الشيء مثل oblq هنا.

هل جربت هذه التعليمات البرمجية قبل تقديم CropViewController؟

if #available(iOS 13.0, *) {
 cropViewController.modalPresentationStyle = .fullScreen
}

أصلحت مشكلتي ، شكرا لك

if #available (iOS 13.0، *) {
CropViewController.modalPresentationStyle =. fullScreen
}

شكرا. أدى هذا إلى إصلاح مشكلتي على iOS 13

بعد اقتصاص الصورة ، واستبعاد وحدة تحكم الاقتصاص ، في نهاية الانتقال ، تتم إزالة عرض وحدة التحكم في التنقل ولا يتم عرضها

أرجوك أن تساعدني

بعد اقتصاص الصورة ، واستبعاد وحدة تحكم الاقتصاص ، في نهاية الانتقال ، تتم إزالة عرض وحدة التحكم في التنقل ولا يتم عرضها

أرجوك أن تساعدني

أهلا! فقط قم بتعيين cropViewController.dismiss(animated: **false**, completion: nil) بدلاً من cropViewController.dismiss(animated: **true**, completion: nil)

كنت أحاول حل هذه المشكلة أيضًا. كما يقول @ ibdman1991 ، فإن تعطيل الرسوم المتحركة يعمل ولكنه يبدو سيئًا. أعتقد أن إزالة transitioningDelegate يمكن أن يكون حلاً أفضل ، ولست متأكدًا من مدى تأثير ذلك.

    let cropViewController = CropViewController(image: image)
    cropViewController.modalTransitionStyle = .crossDissolve
    cropViewController.transitioningDelegate = nil

if #available (iOS 13.0، *) {
CropViewController.modalPresentationStyle =. fullScreen
}

تم حل هذه المشكلة في iOS 13 وما فوق. شكرًا

if #available (iOS 13.0، *) {
CropViewController.modalPresentationStyle =. fullScreen
//ropViewController.modalTransitionStyle = .crossDissolve
CropViewController.transitioningDelegate = لا شيء
}
يعمل لدي

اه. تمام. نظرًا لأن ضبط نمط العرض بشكل صريح على ملء الشاشة يبدو أنه يعمل على إصلاحه بالنسبة لغالبية الأشخاص ، فقد أغلقت هذا الأمر. :)

إذا كانت لديك حالة استخدام محددة تتطلب أسلوب عرض مشروط مختلفًا بشكل واضح ، فيرجى فتح مشكلة جديدة وشرح ما تحاول القيام به بعناية. يرجى أن تضع في اعتبارك ، إذا كان هناك خطأ في iOS 13 ، فقد لا يكون هناك الكثير مما يمكننا القيام به هنا.

شكرا!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات