[ios] اي فون 6 زائد الارتباك القرار: Xcode أو موقع أبل؟ للتطوير



3 Answers

الجواب هو أن التطبيقات الأقدم تعمل في وضع التكبير 2208 × 1242. ولكن عندما يتم إنشاء تطبيق للهواتف الجديدة ، فإن الدقة المتوفرة هي: Super Retina HD 5.8 (iPhone X) 1125 x 2436 (458ppi) و Retina HD 5.5 ( iPhone 6 و 7 و 8 Plus ) و 1242 x 2208 و Retina HD 4.7 ( iPhone 6 ) 750 x 1334 . هذا يسبب الارتباك المذكور في السؤال. لإنشاء تطبيقات تستخدم حجم الشاشة الكامل للهواتف الجديدة ، يمكنك إضافة LaunchImages بالأحجام التالية: 1125 × 2436 ، و 1242 × 2208 ، و 2208 × 1242 ، و 750 × 1334.

الحجم لجهاز iPhone X مع قياس 3x (اسم Apple: Super Retina HD ) ، مساحة تنسيق: 375 × 812 نقطة و 1125 × 2436 بكسل ، 458 نقطة في البوصة ، حجم الجهاز الفعلي هو 2.79 × 5.65 بوصة أو 70.9 × 143.6 ملم .

الحجم لأجهزة iPhone 6 و 6 S و 7 و 8 بتدرج 3x (اسم Apple: Retina HD 5.5 ) ومساحة إحداثية: 414 × 736 نقطة و 1242 × 2208 بكسل و 401 بكسل لكل بوصة ، حجم الشاشة الفعلي هو 2.7 × 4.8 بوصة أو 68 × 122 ملم عند التشغيل في وضع التكبير / التصغير ، أي بدون LaunchImages جديد أو اختيار في الإعداد على iPhone 6 Plus ، فإن المقياس الأصلي هو 2.88 والشاشة هي 320 × 568 نقطة ، وهو الحجم الأصلي لجهاز iPhone 5:

Screen bounds: {{0, 0}, {414, 736}}, Screen resolution: <UIScreen: 0x7f97fad330b0; bounds = {{0, 0}, {414, 736}};
mode = <UIScreenMode: 0x7f97fae1ce00; size = 1242.000000 x 2208.000000>>, scale: 3.000000, nativeScale: 3.000000

الحجم لجهاز iPhone 6 و iPhone 6S بحجم 2x (اسم Apple: Retina HD 4.7 ) ، مساحة تنسيق: 375 × 667 نقطة و 750 × 1334 بكسل ، 326 بكسل في البوصة ، حجم الشاشة الفعلي هو 2.3 x 4.1 أو 58 × 104 ملم . عند التشغيل في وضع التكبير / التصغير ، أي بدون LaunchImages جديدة ، فإن الشاشة هي 320 × 568 نقطة ، وهو الحجم الأصلي لجهاز iPhone 5:

Screen bounds: {{0, 0}, {375, 667}}, Screen resolution: <UIScreen: 0x7fa01b5182d0; bounds = {{0, 0}, {375, 667}};
mode = <UIScreenMode: 0x7fa01b711760; size = 750.000000 x 1334.000000>>, scale: 2.000000, nativeScale: 2.000000

و iPhone 5 للمقارنة 640 x 1136 ، iPhone 4 640 x 960.

إليك الشفرة التي اعتدت عليها للتحقق من ذلك (لاحظ أن nativeScale يعمل فقط على iOS 8):

UIScreen *mainScreen = [UIScreen mainScreen];
NSLog(@"Screen bounds: %@, Screen resolution: %@, scale: %f, nativeScale: %f",
          NSStringFromCGRect(mainScreen.bounds), mainScreen.coordinateSpace, mainScreen.scale, mainScreen.nativeScale);

ملاحظة: قم بتحميل LaunchImages وإلا سيتم تشغيل التطبيق في Zoomed Mode ولا تعرض المقياس الصحيح أو أحجام الشاشات. في وضع nativeScale ، لن يكون scale nativeScale scale nativeScale هو نفسه. على الجهاز الفعلي ، يمكن أن يكون المقياس 2.608 على iPhone 6 Plus ، حتى عندما لا يكون قيد التشغيل في Zoomed Mode ، لكنه سيظهر مقياس 3.0 عند تشغيله على جهاز المحاكاة.

Question

يدعي موقع ويب Apple أن الدقة 1080 بكسل: 1920 × 1080

ومع ذلك ، فإن شاشة الإطلاق التي تتطلبها Xcode (التي تم إطلاقها على جنرال موتورز والتي تم إطلاقها اليوم) هي 2208 × 1242.

من هو على حق؟




ربما ينبغي لك التوقف عن استخدام صور الإطلاق في نظام التشغيل iOS 8 واستخدام لوحة العمل المصورة أو nib / xib.

  • في Xcode 6 ، افتح قائمة File واختر NewFile...iOSUser InterfaceLaunch Screen .

  • ثم افتح إعدادات مشروعك من خلال النقر عليه.

  • في علامة التبويب "عام" ، في القسم المسمى " App Icons and Launch Images ، قم بتعيين Launch Screen File إلى الملفات التي قمت بإنشائها (سيؤدي ذلك إلى تعيين UILaunchStoryboardName في info.plist ).

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

إضافة ملف xib شاشة البدء إلى مشروعك:

تكوين مشروعك لاستخدام ملف xib Launch Screen بدلاً من كتالوج Asset Catalog:




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

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

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

أشعر بإحباط طفيف لأنهم لم يحافظوا على رسم خرائط الدقة الداخلية على دقة الشاشة الفعلية 1: 1 للنموذج الأكبر.




تحقق من هذا الرسم البياني: paintcodeapp.com/news/iphone-6-screens-demystified

يشرح الاختلافات بين أجهزة iPhone القديمة و iPhone 6 و iPhone 6 Plus. يمكنك مشاهدة مقارنة أحجام الشاشات في النقاط والبيكسلات المقدمة والبيكسلات الفيزيائية. ستجد أيضًا إجابة لسؤالك هناك:

iPhone 6 Plus - مع شاشة Retina HD. عامل القياس هو 3 ويتم تصغير الصورة بعد ذلك من تقديم 2208 × 1242 بكسل إلى 1920 × 1080 بكسل.

نسبة تصغير النطاق هي 1920/2208 = 1080/1242 = 20 / 23. وهذا يعني أن كل 23 بكسل من العرض الأصلي يجب أن يتم تعيينها إلى 20 بكسل فعليًا. بعبارة أخرى ، يتم تصغير الصورة إلى حوالي 87٪ من حجمها الأصلي.

تحديث:

هناك نسخة محدثة من المعلومات المصورة المذكورة أعلاه. وهو يحتوي على معلومات أكثر تفصيلاً حول اختلافات دقة الشاشة ويغطي جميع طرازات iPhone حتى الآن ، بما في ذلك الأجهزة ذات 4 بوصات.

paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions




Related