แม้ว่า iOS จะไม่มีวิธีอย่างเป็นทางการในการจับภาพหน้าจอบนอุปกรณ์ iOS โดยทางโปรแกรม แต่ให้วิธีการจับภาพหน้าจอโดยใช้ปุ่มโฮมและปุ่มเปิดปิด โดยการกดทั้งสองอย่างพร้อมกัน
ในการจับภาพหน้าจอ เราต้องทำตามขั้นตอนต่างๆ กัน
-
เราจะได้เลเยอร์ของ keyWindow – UIApplication.shared.keyWindow!.layer
-
เราจะได้มาตราส่วนของหน้าจอ – UIApplication.main.scale
-
การสร้างภาพใหม่ที่มีขนาดเท่ากับมุมมอง
-
เรนเดอร์และบันทึกภาพ
มาสร้างโปรเจ็กต์ใหม่กันเถอะ ในตัวควบคุมมุมมองหลัก ให้สีพื้นหลัง จากนั้นลากปุ่มและเชื่อมต่อเพื่อสร้างแอคชั่นไปยังคลาสของมัน เพิ่มรหัสต่อไปนี้ในการดำเนินการ
@IBAction func takeshot(_ sender:Any) { รูปภาพ :UIImage? ให้ currentLayer =UIApplication.shared.keyWindow!.layer ให้ currentScale =UIScreen.main.scale UIGraphicsBeginImageContextWithOptions (currentLayer.frame.size, false, currentScale); guard ให้ currentContext =UIGraphicsGetCurrentContext () อื่น {return} currentLayer.render (ใน:currentContext) image =UIGraphicsGetImageFromCurrentImageContext () UIGraphicsEndImageContext () ให้ img =รูปภาพอื่น { return } UIImageWriteToSavedPhotosAlbum (img, ไม่มีศูนย์)>ในขณะที่ใช้สิ่งนี้เป็นครั้งแรก คุณจะต้องอนุญาตให้รูปภาพบันทึกภาพได้ ภาพที่บันทึกไว้จะอยู่ในรูปแบบ .jpg
เพิ่ม “NSPhotoLibraryAddUsageDescription” . ด้วย ไปที่ info.plist ของแอปของคุณ
ซึ่งสามารถแปลงเป็นฟังก์ชันและใช้ในหลายๆ ที่ หรือเป็นส่วนขยายได้
นี่คือลักษณะของแอป เมื่อคุณเรียกใช้
หลังจากวิ่งครั้งแรกและกดปุ่มถ่ายภาพ
หลังจากที่คุณอนุญาตการเข้าถึงแล้ว ให้ไปที่แอพรูปภาพบน iPhone ของคุณและรูปภาพจะอยู่ที่นั่น