ความละเอียดของภาพสำหรับ iPhone 6 และ 6+ ใหม่รองรับ @ 3x หรือไม่


141

ฉันได้ดูบทความและการสนทนาอย่างน้อยหนึ่งเรื่องที่นี่และที่นี่เกี่ยวกับความละเอียดของภาพที่ iPhone ใหม่จะใช้ @ รูปภาพ 3x สำหรับการแสดงผล มันจริงหรอ?

ดังนั้นหมายความว่าเราจะต้องเก็บภาพสามภาพ? ตัวอย่างเช่นฉันมีภาพขนาด 50 X 50 ฉันจะต้องเก็บภาพ 3 ภาพเพื่อปรับแต่งรูปลักษณ์สำหรับ iPhone ใหม่หรือไม่

  • ปกติ (50 X 50)
  • @ 2x - จอประสาทตา (100 X 100)
  • @ 3x - Retina HD (150 X 150)

หรือโทรศัพท์รุ่นใหม่ใช้ @ ภาพ 2x เท่านั้นและไม่มีอะไรเหมือน @ 3x?

ฉันได้ทำการทดสอบโดยการทำโปรเจ็กต์ตัวอย่างและเครื่องมือจำลองทั้งหมดดูเหมือนจะใช้ @ ภาพ 3 มิตินี่เป็นสิ่งที่สับสน

แก้ไข

นี่คือข้อมูลเพิ่มเติม

  • 3GS (163 ppi ดังนั้นใช้ Normal)
  • 4, 4s, 5 และ 5s (326 ppi ดังนั้นเราใช้ @ 2x)
  • 6 (326 ppi ดังนั้นดูเหมือนว่าจะใช้ @ 2x)
  • 6 บวก (401 ppi นี่คือความสับสน)

แก้ไข

จากคำตอบที่ได้รับจาก Tsob และ Nitin ฉันเพิ่ม @ 3x images ในโครงการของฉัน

แก้ไขข้อมูล

ฉันเห็นผู้ใช้บางคนสับสนเกี่ยวกับสาเหตุที่ iPhone 6 ใช้ @ ภาพ 2x แม้ว่ามันจะมีความละเอียดสูงกว่า แต่เหตุผลก็คือ

iPhone 6 อาจมีความละเอียดต่างกัน แต่มีความหนาแน่นเท่ากันต่อพิกเซลนิ้ว (PPI)

  • การแก้ปัญหาเกี่ยวข้องกับจำนวนพิกเซลที่แน่นอน
  • ความหนาแน่น (aka Pixels ต่อนิ้ว - PPI) เกี่ยวข้องกับจำนวนพิกเซลต่อนิ้วซึ่งสัมพันธ์กันในกรณีของ iPhone 6 และ iPhone ก่อนหน้า แต่แตกต่างกันใน iPhone 6 บวก

ตรวจสอบเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ที่นี่ในหัวข้อนี้

ดังนั้น iPhone 6 จึงใช้ @ 2x image เหมือนกับ iPhones 4, 5 และ 5S เนื่องจากมี PPI และ iPhone 6 plus ใช้ @ 3x


ถ้าอย่างนั้นการใช้ Retina 4 2x จะเป็นอย่างไรถ้าไม่มีอุปกรณ์ใดใช้อยู่?
Mrunal

1
ฉันยอมรับว่าความหนาแน่นเหมือนกันสำหรับ iPhone 4, 5 และ 6 แต่วิธีแก้ปัญหาความละเอียดที่แตกต่างกันอย่างไร ดังนั้นมันจึงต่างกันอย่างมาก 640x960 และ 750 × 1334 พิกเซล ถ้าฉันต้องการใช้ภาพพื้นหลังที่ซ้อนทับทั้งหน้าจอ ฉันจะตั้งค่ารูปภาพ xcassets ในกรณีนี้ได้อย่างไร
Matrosov Alexander

@ MatrosovAlexander คุณแก้ปัญหาอย่างไร
Mário Carvalho

วิธีแก้ปัญหาฉันใช้ iphone 6 รูปสำหรับ @ 2x image เช่นกัน แต่ starnge ที่ xcode ไม่มีภาพที่เหมาะสมสำหรับมัน
Matrosov Alexander

คำตอบ:


54

ฉันได้ลองในโครงการตัวอย่างเพื่อใช้มาตรฐาน @ 2x และ @ 3x อิมเมจและโปรแกรมจำลองการใช้งาน iPhone 6+ ใช้อิมเมจ @ 3x ดังนั้นจึงดูเหมือนว่ามีภาพ @ 3x ที่จะต้องทำ (หากเครื่องมือจำลองทำซ้ำพฤติกรรมของอุปกรณ์) แต่สิ่งที่แปลกคืออุปกรณ์ทั้งหมด (เครื่องจำลอง) ดูเหมือนจะใช้ภาพ @ 3x นี้เมื่ออยู่ในโครงสร้างโครงการ iPhone 4S / iPhone 5 ด้วย
การขาดการสื่อสารจาก Apple ในโครงสร้าง @ 3x ที่มีศักยภาพในขณะที่พวกเขาขอให้นักพัฒนาเผยแพร่แอพ iOS8 ของพวกเขาค่อนข้างสับสนโดยเฉพาะอย่างยิ่งเมื่อเห็นผลลัพธ์เหล่านั้นบนโปรแกรมจำลอง

** แก้ไขจากเว็บไซต์ของ Apple **: พบได้ในส่วน "มีอะไรใหม่ใน iOS 8" ในพื้นที่นักพัฒนาของ Apple:

รองรับมาตราส่วนหน้าจอใหม่ iPhone 6 Plus ใช้จอแสดงผล Retina HD ใหม่พร้อมขนาดหน้าจอ 3.0 เพื่อมอบประสบการณ์ที่ดีที่สุดเท่าที่จะเป็นไปได้ให้กับอุปกรณ์เหล่านี้ให้รวมงานศิลปะใหม่ที่ออกแบบมาสำหรับสเกลหน้าจอนี้ ใน Xcode 6 แค็ตตาล็อกสินทรัพย์สามารถรวมภาพที่ขนาด 1x, 2x และ 3x; เพียงเพิ่มเนื้อหารูปภาพใหม่และ iOS จะเลือกเนื้อหาที่ถูกต้องเมื่อใช้งานบน iPhone 6 Plus พฤติกรรมการโหลดภาพใน iOS ยังรู้จัก @ ต่อท้าย @

ยังไม่เข้าใจว่าทำไมอุปกรณ์ทั้งหมดดูเหมือนจะโหลด @ 3x อาจเป็นเพราะฉันใช้ไฟล์ปกติไม่ใช่ xcassets? จะลองเร็ว ๆ นี้

แก้ไขหลังจากการทดสอบเพิ่มเติม:ตกลงดูเหมือนว่า iOS8 มีการพูดคุยในเรื่องนี้ เมื่อทำการทดสอบกับเครื่องจำลอง iOS 7.1 iPhone 5 จะใช้ภาพ @ 2x อย่างถูกต้อง แต่เมื่อเปิดตัวเหมือนกันใน iOS 8 จะใช้ @ 3x บน iPhone 5 ไม่แน่ใจว่าเป็นพฤติกรรมที่ต้องการหรือข้อผิดพลาด / ข้อผิดพลาดใน iOS8 GM หรือเครื่องจำลองใน Xcode 6


2
ใช่ฉันทดสอบด้วยเครื่องจำลองแล้วอุปกรณ์ทั้งหมดถ่ายภาพ @ 3
มิติ

โดยสรุปแล้วณ วันนี้เส้นทางที่ดีที่สุดที่เป็นไปได้คือการใช้ "@ 2x" ในชื่อภาพ แต่อย่างใดการตรวจสอบอุปกรณ์สำหรับ 6 Plus และใช้ภาพ 3x โดยไม่มี "@ 3x" เพื่อไม่ให้พิษอุปกรณ์ 2x?
darkheartfelt

ดูเหมือนว่าตัวเลือก 3x ใน iPhone 6 จะเกิดขึ้นก็ต่อเมื่อสินทรัพย์ที่เป็นปัญหานั้นเป็น JPG แทนที่จะเป็น PNG
emreberge

102

UPDATE:

ลิงค์ใหม่สำหรับขนาดภาพไอคอนโดยแอปเปิ้ล

https://developer.apple.com/ios/human-interface-guidelines/graphics/image-size-and-resolution/

ป้อนคำอธิบายรูปภาพที่นี่


ใช่มันเป็นจริงที่นี่เป็น Apple ให้เอกสารอย่างเป็นทางการเกี่ยวกับไอคอนหรือขนาดภาพ

ป้อนคำอธิบายรูปภาพที่นี่

คุณต้องตั้งค่าภาพสำหรับ iPhone6 ​​และ iPhone6 ​​+

สำหรับ iPhone 6:

750 x 1334 (@2x) for portrait

1334 x 750 (@2x) for landscape

สำหรับ iPhone 6 Plus:

1242 x 2208 (@3x) for portrait

2208 x 1242 (@3x) for landscape

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรูปภาพและความละเอียดของภาพนี่เป็นการโพสต์ที่มีประโยชน์ที่สุด

สำหรับการตั้งค่าขนาดรูปภาพสำหรับส่วนควบคุมคุณสามารถตั้งค่า 1x @ 2x และ @ 3x ได้ดังต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่


8
หากอุปกรณ์ทั้งหมดเป็นเรตินา 2x หรือ 3x ทำไมแคตตาล็อกของสินทรัพย์ขอภาพ 1x ในโครงการสำหรับกำหนดเป้าหมายสำหรับ iPhone บน iOS 7/8 เท่านั้น? ไม่สมเหตุสมผล
เป็ด

1
อาจเป็นได้ว่าสำหรับ iphone4 @RubberDuck :) ดูว่า ipad 2 และ iPad Mini ที่ต้องการ 1x
Nitin Gohel

ขออภัยคุณไม่ได้อ่านสิ่งที่ฉันเขียน ฉันกำลังพูดถึงโครงการ iPhone เท่านั้นสำหรับ iOS 7 ไม่มี iPhone ที่มี 1x ที่สามารถเรียกใช้ iOS 7 ได้ แต่แคตตาล็อกสินทรัพย์ยังคงถาม
Duck

@RubberDuck เลือกเนื้อหารูปภาพของคุณแล้วดูบานหน้าต่างสาธารณูปโภคที่ด้านขวาของ Xcode หนึ่งในแท็บนั้นมีชุดของช่องทำเครื่องหมาย บางทีเนื้อหาของคุณมีช่องทำเครื่องหมายที่เลือกมากเกินไปทำให้มีตัวเลือก 1x ปรากฏขึ้น
rmaddy


10

ฉันได้ทำการทดสอบโดยการทำโปรเจ็กต์ตัวอย่างและเครื่องมือจำลองทั้งหมดดูเหมือนจะใช้ @ ภาพ 3 มิตินี่เป็นสิ่งที่สับสน

สร้างรูปภาพเวอร์ชันต่าง ๆ ในแคตตาล็อกเนื้อหาของคุณเพื่อให้รูปภาพบอกตัวเองว่าเป็นรุ่นใด:

ป้อนคำอธิบายรูปภาพที่นี่

ตอนนี้ให้เรียกใช้แอพในแต่ละตัวจำลอง คุณจะเห็นว่าภาพ 3x ใช้กับ iPhone 6 Plus เท่านั้น

สิ่งเดียวกันนี้เป็นจริงหากรูปภาพถูกดึงออกมาจากชุดแอปโดยใช้ชื่อของพวกเขา (เช่นone.png , one@2x.pngและone@3x.png ) โดยการโทรimageNamed:และกำหนดลงในมุมมองรูปภาพ

(อย่างไรก็ตามมีความแตกต่างถ้าคุณกำหนดภาพให้กับมุมมองภาพใน Interface Builder - รุ่น 2x จะถูกละเว้นในอุปกรณ์ความละเอียดสองเท่านี่น่าจะเป็นข้อบกพร่องซึ่งเป็นข้อบกพร่องที่เห็นได้ชัดpathForResource:ofType:)


1
คุณได้ทำเครื่องหมายเนื้อหาว่า "สากล" ดังนั้นเหตุใดคุณจึงเห็นพฤติกรรมที่สอดคล้องกัน ลองเลือก "อุปกรณ์เฉพาะ" ในเมนูแบบเลื่อนลงแทน!
Nikolay Spassov

1
@RalphZhouYuan ตอนนี้ใช้งานได้ดีสำหรับฉัน คุณจะไม่เห็นรุ่น 2x ในรายการแต่เพียงกำหนดรุ่น 1x และรุ่น 2x หรือ 3x จะถูกใช้อย่างถูกต้อง หรือเพียงแค่ใช้แคตตาล็อกสินทรัพย์
แม

1
@RalphZhouYuan นี่คือตัวอย่างที่ฉันดาวน์โหลดได้: github.com/mattneub/Programming-iOS-Book-Examples/tree/master/ ...... - มันแสดงทั้งไฟล์ภาพในชุดแอพและไฟล์รูปภาพในแค็ตตาล็อกสินทรัพย์และทำงานได้อย่างถูกต้อง
ด้าน

3
@matt ในที่สุดฉันก็พบว่าปัญหาของฉันเกี่ยวข้องกับการตั้งค่าเป้าหมายการปรับใช้ (ซึ่งคือ 6.0) ของแอปของฉันฉันเปิดคำถาม: stackoverflow.com/questions/26333278/… และเริ่มรายงานข้อผิดพลาดกับ Apple
inexcii

1
@RalphZhouYuan ว้าวนักสืบที่ยอดเยี่ยมกำลังติดตามดูนั่น! ขอขอบคุณที่รายงานกลับ
แม

2

ios จะพยายามถ่ายภาพที่ดีที่สุดเสมอ แต่จะถอยกลับไปที่ตัวเลือกอื่น ๆ .. ดังนั้นหากคุณมีภาพปกติในแอพและต้องการ @ รูปภาพ 2x ก็จะใช้ภาพปกติ

หากคุณใส่ @ 2x ไว้ในโปรเจ็กต์และคุณเปิดแอปบนอุปกรณ์ปกติมันจะลดขนาดภาพลงเพื่อแสดง

หากคุณกำหนดเป้าหมายอุปกรณ์ ios7 และ ios8 และต้องการคุณภาพที่ดีที่สุดคุณจะต้องใช้ @ 2x และ @ 3x สำหรับโทรศัพท์และปกติและ @ 2x สำหรับเนื้อหา ipad เนื่องจากไม่มีโทรศัพท์เรตินาที่เหลือและไม่มี @ 3x ipad

อาจเป็นการดีกว่าที่จะสร้างเนื้อหาในแอปจากกราฟิกแบบเวกเตอร์ ... ตรวจสอบhttp://mattgemmell.com/using-pdf-images-in-ios-apps/


เพียงใช้ PaintCode ที่น่าทึ่งสำหรับเวกเตอร์ในแอพ
Fattie
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.