Tocropviewcontroller: هل SafeAreaInsets غير صحيحة؟

تم إنشاؤها على ٢٥ سبتمبر ٢٠١٩  ·  14تعليقات  ·  مصدر: TimOliver/TOCropViewController

شكرا على المكتبة الرائعة! 👍

ما الذي تحاول تحقيقه بهذه المكتبة بالضبط؟
أنا فقط لدي سؤال واحد. موضع شريط الأدوات قريب جدًا من الجزء السفلي:

هل هي صفحة safeAreaInsets.bas غير صحيحة؟

هل تحتاج إلى مثال قابل للتكرار؟ TestSafeArea.zip

bug rfc

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

مرحبا @ zhangao0086! آسف للتأخير!

أخيرًا حصلت على بعض وقت الفراغ لفحص ما يجري. كان الأمر غريبًا لأنه حتى على مستوى الحاوية الرئيسية ، كان safeAreaInsets 0 باستثناء الدرجة.

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

لم أشحن إصدار pod جديد حتى الآن (تعطل خادم My CI عندما قمت بتحديثه إلى Catalina. 😅) ، لكنني أضفت علامة .fullScreen إلى الفرع الرئيسي. هل يمكنك من فضلك محاولة الانسحاب من السيد ومعرفة ما إذا كان يعمل من أجلك الآن؟

الصيغة التي يتم سحبها من المعلم عبر CocoaPods هي:

pod 'CropViewController', :git => 'https://github.com/TimOliver/TOCropViewController.git'

شكرا!

ال 14 كومينتر

@ zhangao0086 نفس المشكلة هنا على iOS13 ، وكذلك عند النقر فوق إلغاء تعطل التطبيق .. أي تحديثات على هذا؟

بينغ ...

أهلا!
السبب في تحويل VC المخصص لـ CropViewController. لإصلاح هذه المشكلة ، يتعين علينا إجراء بعض الأبحاث حول الاختلافات في iOS13 المتعلقة بالانتقال أو .... فقط قم بتعطيله :)
الملف: CropViewController.swift ، السلسلة: 561.

fileprivate func setUpCropController() {
        addChild(toCropViewController)
        transitioningDelegate = (toCropViewController as! UIViewControllerTransitioningDelegate)
        toCropViewController.delegate = self
        toCropViewController.didMove(toParent: self)
    }

لاستخدام الانتقال الافتراضي ، يمكننا التعليق / إزالة هذا السطر:

transitioningDelegate = (toCropViewController as! UIViewControllerTransitioningDelegate)

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

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

https://stackoverflow.com/questions/57988889/ios-13-uipopoverpresentationcontroller-sourceview-content-visible-in-the-arrow

https://stackoverflow.com/questions/57866771/ios-problem-of-display-the-popover-border-in-the-ios13

أيضًا ، إذا تم إصلاح هذا في الكود الحالي ، فقد لا أراه لأنني أستخدم قرطاج ، على الرغم من أنني تحققت للتو ولا توجد تحديثات

أي تحديث على هذا؟ تضمين التغريدة

مرحبًا @ zhangao0086. شكرًا جزيلاً على نموذج التطبيق الشامل!

أنا مشغول بإخماد حرائق iOS 13 في بعض مشاريعي الأخرى الآن ، لذلك لم تتح لي الفرصة للنظر في هذا حتى الآن. آسف!

سوف أنظر في الأمر عندما أستطيع ذلك. في هذه الأثناء ، إذا وجد أي شخص الإصلاح ويمكنه إرسال PR ، فسيكون ذلك موضع تقدير كبير!

لقد صنعت في الأصل CropViewController وحدة تحكم عرض منفصلة لأنه لم يكن من الممكن تحويل كل واجهة Objective-C TOCropViewController إلى Swift في ذلك الوقت. لكني أعتقد أن قابلية التشغيل البيني قد تحسنت لدرجة أنه يمكننا التخلص من الغلاف الآن. نأمل أن يمنع ذلك مشكلات مثل هذه في المستقبل.

TimOliver شكرا

مرحبا @ zhangao0086! آسف للتأخير!

أخيرًا حصلت على بعض وقت الفراغ لفحص ما يجري. كان الأمر غريبًا لأنه حتى على مستوى الحاوية الرئيسية ، كان safeAreaInsets 0 باستثناء الدرجة.

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

لم أشحن إصدار pod جديد حتى الآن (تعطل خادم My CI عندما قمت بتحديثه إلى Catalina. 😅) ، لكنني أضفت علامة .fullScreen إلى الفرع الرئيسي. هل يمكنك من فضلك محاولة الانسحاب من السيد ومعرفة ما إذا كان يعمل من أجلك الآن؟

الصيغة التي يتم سحبها من المعلم عبر CocoaPods هي:

pod 'CropViewController', :git => 'https://github.com/TimOliver/TOCropViewController.git'

شكرا!

TimOliver شكرا جزيلا لعملك الرائع!

رائع! إنه يعمل تمامًا كما توقعت! 👍

اضطررت أيضًا إلى تعيين cropViewController.modalPresentationStyle = .fullScreen في الكود الخاص بي (وليس فقط التحديث إلى الفرع الرئيسي). إضافة ملاحظة هنا لأن ذلك لم يكن واضحًا بالنسبة لي

يبدو أن هذا الإصلاح يعمل فقط مع رمز Swift. هل يعرف أحد لماذا لا يعمل في الهدف ج؟

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

القضايا ذات الصلة

TimOliver picture TimOliver  ·  4تعليقات

trr-amsiq picture trr-amsiq  ·  10تعليقات

yarodevuci picture yarodevuci  ·  8تعليقات

Srosman picture Srosman  ·  3تعليقات

erickva picture erickva  ·  4تعليقات