যদিও আইওএস অফিশিয়ালি প্রোগ্রাম্যাটিক্যালি স্ক্রিনশট নেওয়ার কোনো পদ্ধতি দেয় না, কিন্তু হোম এবং পাওয়ার বাটন একসাথে চাপলে স্ক্রিনশট হয়। প্রোগ্রাম্যাটিক্যালি করতে হলে নিচের ধাপগুলো অনুসরণ করুন।
- কি উইন্ডোর (keyWindow) লেয়ার পান —
UIApplication.shared.keyWindow!.layer - স্ক্রিনের স্কেল পান —
UIScreen.main.scale - ভিউর সাইজ অনুযায়ী নতুন ইমেজ তৈরি করুন।
- রেন্ডার করে ইমেজ সেভ করুন।
একটি প্রজেক্ট তৈরি করুন, মেইন ভিউ কন্ট্রোলারে ব্যাকগ্রাউন্ড কালার দিন এবং একটি বাটন যোগ করে একশন (action) তৈরি করুন। একশনে নিচের কোড যোগ করুন।
@IBAction func takeshot(_ sender: Any) {
var image: UIImage?
let currentLayer = UIApplication.shared.keyWindow!.layer
let currentScale = UIScreen.main.scale
UIGraphicsBeginImageContextWithOptions(currentLayer.frame.size, false, currentScale)
guard let currentContext = UIGraphicsGetCurrentContext() else { return }
currentLayer.render(in: currentContext)
image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
guard let img = image else { return }
UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil)
}
প্রথমবার রান করলে ফটো লাইব্রেরির পারমিশন চাইবে। ইনফো.প্লিস্ট (Info.plist)-এ NSPhotoLibraryAddUsageDescription যোগ করুন। এই কোডটি ফাংশন বা এক্সটেনশন হিসেবে কনভার্ট করে কোথাও ব্যবহার করা যাবে।
অ্যাপ রান করার পর স্ক্রিনশট নেওয়ার ফলাফল নিচে —

ফটো অ্যাপে যেতে স্ক্রিনশট দেখতে পাবেন।

