Slide Over คือโหมดการทำงานหลายอย่างพร้อมกันบน iPad ที่แสดงแอปที่สองในหน้าต่างลอยเหนือแอปหลัก หน้าต่างกินพื้นที่ประมาณหนึ่งในสี่ของความกว้างหน้าจอ สามารถเลื่อนไปทางซ้ายหรือขวาและซ่อนได้ด้วยการปัด ตาม Apple Human Interface Guidelines (2025) Slide Over มีให้ใช้งานบน iPad ทุกรุ่นตั้งแต่ iOS 9 และเป็นส่วนหนึ่งของระบบ การทำงานหลายอย่างพร้อมกัน ของ iPadOS
ประเด็นสำคัญ
Slide Over คือโหมดการทำงานหลายอย่างพร้อมกันเฉพาะสำหรับ iPad ที่แสดงแอปที่สองในหน้าต่างลอยแคบ ต่างจาก Split View ที่หน้าจอถูกแบ่งออกเป็นสองส่วนเท่าๆ กัน Slide Over จะวางอยู่เหนืออินเทอร์เฟซหลัก ทำให้ผู้ใช้สามารถเข้าถึงเอกสารอ้างอิง แอปแชท หรือเครื่องเล่นสื่อได้อย่างรวดเร็ว
โหมดนี้ถูกนำมาใช้ใน iOS 9 พร้อมกับ Split View และในตอนแรกสนับสนุนเฉพาะ iPad Air 2, iPad mini 4 และ iPad Pro เท่านั้น ปัจจุบัน Slide Over ทำงานบน iPad ทุกรุ่น รวมถึง iPad รุ่นที่ 10 และ iPad mini (A17 Pro) สำหรับนักพัฒนา Slide Over หมายความว่าแอปสามารถแสดงในหน้าต่างกว้าง 320 pt - Size Class แบบกะทัดรัด
ผู้ใช้เปิด Slide Over โดยการปัดจากขอบขวาของหน้าจอหรือลากไอคอนจาก Dock ไปทางด้านขวาของหน้าจอ สามารถเปิดแอปใดก็ได้ในหน้าต่าง Slide Over - ไม่จำเป็นต้องมีการสนับสนุนพิเศษ แม้ว่าแอปที่ปรับตัวแล้วจะดูดีกว่าอย่างเห็นได้ชัด
Slide Over ถูก implement เป็น UIWindowScene แยกต่างหากเหนือหน้าต่างหลัก แต่ละแอปใน Slide Over จะได้รับอินสแตนซ์ UIWindowScene ของตัวเองที่มีความกว้าง 320 pt (ในแนวตั้ง) ผู้ใช้สามารถมีแอปเดียวใน Slide Over - การเปิดแอปที่สองจะแทนที่แอปแรก
หน้าต่าง Slide Over สามารถเลื่อนได้โดยการลากที่จับพิเศษ (pill) ที่ด้านบนของหน้าต่าง หากคุณลากหน้าต่างไปที่ขอบซ้าย - มันจะติดไปทางซ้าย หากคุณปัดหน้าต่างไปทางขวาจนสุด - มันจะยุบเป็นแผงที่มองไม่เห็นและเปิดใช้งานโดยการปัดจากขอบขวา ระบบจะจดจำแอปล่าสุดที่เปิดใน Slide Over
คุณสมบัติสำคัญคือ Slide Over สามารถแปลงเป็น Split View ได้ หากผู้ใช้ลากหน้าต่าง Slide Over ไปที่ขอบบนหรือล่าง โหมดจะเปลี่ยนเป็น Split View แอปทั้งสองจะได้รับการแบ่งหน้าจอเต็มรูปแบบด้วยสัดส่วนที่เท่ากัน
ความแตกต่างหลักอยู่ที่การกระจายพื้นที่หน้าจอ Split View แบ่งหน้าจอออกเป็นสองส่วนเท่าๆ กันหรือตามสัดส่วน แต่ละแอปได้รับพื้นที่คงที่ Slide Over ไม่ได้เอาพื้นที่จากแอปหลัก - แอปหลักยังคงเต็มหน้าจอ และ Slide Over จะแสดงอยู่ด้านบน
ความแตกต่างที่สองคือโฟกัส ใน Split View แอปทั้งสองทำงานและมองเห็นได้พร้อมกัน ใน Slide Over แอปหลักจะสูญเสียโฟกัส (ได้รับ onResignActive) ในขณะที่ Slide Over จะได้รับโฟกัสและการโต้ตอบ เมื่อ Slide Over ถูกซ่อน โฟกัสจะกลับไปที่แอปหลัก
ประการที่สาม - จำนวนสถานการณ์ Split View ต้องการให้นักพัฒนารองรับหลายความกว้าง Slide Over มีความกว้าง 320 pt เสมอ - คลาสกระทัดรัดคงที่ ซึ่งช่วยลดความซับซ้อนในการพัฒนา: จำเป็นต้องมีเค้าโครงแบบปรับได้เพียงหนึ่งเดียวสำหรับขนาดนี้
| คุณลักษณะ | Slide Over | Split View |
|---|---|---|
| ขนาดหน้าต่าง | 320 pt (ความกว้างคงที่) | 50%, 25% หรือ 75% ของหน้าจอ |
| ตำแหน่ง | เหนือแอปหลัก | เคียงข้างกัน แบ่งหน้าจอ |
| โฟกัส | เฉพาะ Slide Over ที่ทำงาน | แอปทั้งสองสามารถทำงานได้ |
| Size Class | Compact Width, Regular Height | ขึ้นอยู่กับสัดส่วน |
เพื่อให้ทำงานได้อย่างถูกต้องใน Slide Over แอปต้องรองรับ Size Class Compact Width ซึ่งหมายความว่าอินเทอร์เฟซต้องพอดีกับความกว้าง 320 pt คำแนะนำหลักของ Apple: ใช้ Auto Layout กับข้อจำกัดแบบปรับได้ หลีกเลี่ยงความกว้างคงที่ ทดสอบหน้าจอทั้งหมดในเครื่องจำลอง iPad ด้วย Slide Over
ในทางปฏิบัติ การปรับตัวจะลดลงเหลือการใช้ UIStackView หรือ SwiftUI กับ VStack/HStack ซึ่งปรับตามพื้นที่ว่างโดยอัตโนมัติ ตาราง (UITableView) และคอลเล็กชัน (UICollectionView) ทำงานได้อย่างถูกต้องในแอปหากเซลล์ของพวกเขาใช้การกำหนดขนาดเอง (self-sizing cells)
สำหรับ UIKit ให้ใช้ UITraitCollection ด้วยการตรวจสอบ horizontalSizeClass หากคลาสเท่ากับ .compact ให้เปลี่ยนอินเทอร์เฟซเป็นเวอร์ชันที่เรียบง่าย: ลบคอลัมน์ที่ไม่จำเป็น แทนที่ Sidebar ด้วย StackView SwiftUI ทำสิ่งนี้โดยอัตโนมัติผ่าน @Environment(\.horizontalSizeClass)
เมื่อแอปเปิดใน Slide Over UIScene ของมันจะได้รับการแจ้งเตือน sceneWillEnterForeground จากนั้นซีนจะเปลี่ยนเป็นสถานะ foreground active - เช่นเดียวกับการเปิดแบบเต็มหน้าจอ ไม่มีความแตกต่างในวงจรชีวิตระหว่างโหมดเต็มหน้าจอและ Slide Over: sceneWillEnterForeground และ sceneDidBecomeActive
เมื่อเปลี่ยนจาก Slide Over กลับไปยังโหมดเต็มหน้าจอหรือเมื่อซ่อนหน้าต่าง ซีนจะได้รับ sceneDidEnterBackground หากผู้ใช้ปัด Slide Over ไปทางขวา (ซ่อน) แอปจะทำงานต่อไปในพื้นหลังจนกว่าแอป Slide Over อื่นจะแทนที่หรือระบบจะเพิ่มหน่วยความจำว่าง
สำหรับแอปที่พึ่งพาเซ็นเซอร์หรือกล้อง Slide Over อาจเป็นปัญหา ใน Slide Over กล้องไม่พร้อมใช้งาน และมาตรความเร่งอาจให้ค่าที่ไม่ถูกต้อง ตรวจสอบ isDeviceOrientationLocked หรือล็อกการวางแนวเมื่อเข้า Slide Over
คำถามที่พบบ่อย
ในแนวตั้ง - 320 pt ในแนวนอน ความกว้างอาจแตกต่างกันไป แต่ horizontalSizeClass ยังคงเป็น Compact นี่คือคลาสกระทัดรัดมาตรฐานของ Apple
ได้ ตั้งค่า UIApplicationSupportsMultipleScenes = NO ใน Info.plist แอปจะเปิดในโหมดเต็มหน้าจอเท่านั้น Slide Over และ Split View จะไม่พร้อมใช้งาน
เพียงแอปเดียว การเปิดแอปที่สองใน Slide Over จะแทนที่แอปปัจจุบัน iPad ไม่รองรับหน้าต่างลอยหลายรายการ - นี่คือข้อจำกัดของ iPadOS
แอปทั้งสองใช้ทรัพยากรร่วมกันของ iPad สำหรับแอปที่หนัก (เกม วิดีโอ) Slide Over อาจลดอัตราเฟรม ขอแนะนำให้จำกัด draw calls และปิดภาพเคลื่อนไหวหากแอปทำงานใน Slide Over
ใช่ บน iPad mini ที่มีหน้าจอ 8.3 นิ้ว Slide Over ทำงานในโหมดเดียวกัน เนื่องจากหน้าจอเล็กกว่า หน้าต่างจึงกินพื้นที่เป็นเปอร์เซ็นต์ที่มากขึ้น แต่พฤติกรรมของ UIScene ยังคงเหมือนเดิม
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ
อ่านเพิ่มเติม