تعيين إطار UIView يساوي View.Frame أو View.Bounds لا يستخدم الشاشة بأكملها

0

لقد أنشأت نموذجًا في Xamarin.Forms ثم استخدم أ PageRenderer في Xamarin.iOS لعرض تغذية الكاميرا الحية باستخدام AVCaptureSession . قمت بتعيين UIView يساوي الإطار View.Frame ثم يضيف طبقة فرعية AVCaptureSessionPreviewLayer إلى ذلك UIView . اختبارًا على iPhone 7 ، تشغل خلاصة الكاميرا الشاشة بأكملها ، ولكن الاختبار على IPad ، تكون تغذية الكاميرا في المنتصف فقط تاركة هامشًا كبيرًا على اليسار واليمين ، ولكن ليس في الأعلى أو الأسفل. عند تصحيح الحدود التي تم تعيينها ، فإنها تساوي 0 ، 0 ، 768 ، 1024. على الرغم من أن الأصل x و y كلاهما 0 ، إلا أنه لا يبدأ في الزاوية العلوية اليسرى.

كيف يمكنني إصلاح هذه المشكلة؟ هل هناك طريقة بدلا من إنشاء UIView جديد تماما في الرمز وراء يمكنني فقط تعيين AVCaptureSessionPreviewLayer لإظهار داخل أ Xamarin.Forms مراقبة؟

تحديث: أضفت عنصر تحكم آخر وقمت بتعيين الأصل إلى 0،0 وهو في الزاوية اليسرى العليا. لذا أفترض أن إضافة طبقة فرعية هي سبب الأصل والعرض غير المناسبين.

1 إجابة

0

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

:مؤلف
فوق
قائمة طعام