Avatar ·

كيفية الحصول على ارتفاع الهوامش العلوية والسفلية لمنطقة الأمان (safeAreaInsets) في iOS؟

مرحبًا أيها الزملاء! أنا أطور تطبيقًا لنظام iOS باستخدام Swift وواجهت مشكلة: أحتاج إلى الحصول برمجيًا على القيم الدقيقة للهوامش العلوية والسفلية لمنطقة الأمان (مثل مراعاة ارتفاع شريط الحالة و'النتوء' في iPhone X والإصدارات الأحدث، بالإضافة إلى اللوحة السفلية لمؤشر الصفحة الرئيسية). حاولت استخدام `view.safeAreaInsets.top` و `view.safeAreaInsets.bottom` في دالة `viewDidLoad()`، لكن هذه القيم ترجع 0. قرأت أن هذا يحدث لأن منطقة الأمان لم تتشكل بعد عند تحميل العرض. كحل بديل، حاولت استدعاء هذا الكود في `viewDidLayoutSubviews()`، لكنني حصلت على قيم غريبة — على سبيل المثال، `top` يساوي 44، و `bottom` يساوي 34، بينما على iPhone 14 Pro Max يجب أن تكون 59 و 34 على التوالي (مع مراعاة الجزيرة الديناميكية). إليك الكود الحالي الخاص بي: ```swift override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() let topInset = view.safeAreaInsets.top let bottomInset = view.safeAreaInsets.bottom print("To