Trong bài đăng này, chúng ta sẽ tìm hiểu cách chụp ảnh màn hình theo chương trình trong iOS.
Chúng tôi sẽ thêm vào textField nơi chúng tôi sẽ thay đổi giá trị, chụp ảnh màn hình bằng cách nhấn một nút và sau đó hiển thị ảnh chụp màn hình trong một imageView mà chúng tôi sẽ đặt ngay bên dưới nút.
Hãy nhớ rằng bạn có thể thêm chức năng này khi nhấn và giữ hoặc bất kỳ cử chỉ nào khác và thậm chí lưu hình ảnh nếu bạn muốn. Nhưng ngay bây giờ, chúng tôi sẽ chỉ tập trung vào việc chụp ảnh màn hình và hiển thị nó trên chế độ xem hình ảnh.
Vì vậy, hãy bắt đầu
Bước 1 - Mở Xcode → Dự án mới → Ứng dụng một lần xem → Đặt tên là “TakeScreenShot”
Bước 2 - Mở Main.storyboard thêm một UITextField, một nút và một UIImageView như hình dưới đây
Bước 3 - Đính kèm một @IBOutlet cho chế độ xem hình ảnh. Đặt tên là snapShotImageView. Đây là chế độ xem hình ảnh mà chúng tôi sẽ tạo ảnh chụp màn hình đã chụp.
Bước 4 - Thêm một @IBAction cho touchUpInside của nút ‘Chụp nhanh’. Đặt tên cho hàm là takeSnapShotClicked.
Bước 5 - Trong viewDidLoad của lớp ViewController, đặt màu viền và chiều rộng cho hình ảnh, imageView để phân biệt với phần khác của khung nhìn.
self.snapShotImageView.layer.borderColor = UIColor.red.cgColor self.snapShotImageView.layer.borderWidth = 2.0
Bước 6 - Chúng tôi sẽ sử dụng phương pháp sau để chụp ảnh màn hình.
- Bắt đầu bối cảnh đồ họa.
- Nắm bắt bối cảnh hiện tại trong một biến.
- Đưa vào biến ngữ cảnh, hiển thị lớp chế độ xem hiện tại.
- Lấy hình ảnh từ biến ngữ cảnh. Lưu ý rằng ngữ cảnh tại thời điểm này sẽ chứa ảnh chụp màn hình về bất kỳ thứ gì hiện có trên chế độ xem.
- Chúng tôi sẽ đặt hình ảnh đã chụp từ ngữ cảnh thành Chế độ xem hình ảnh của chúng tôi
- Kết thúc bối cảnh đồ họa
Tất cả những điều trên chúng ta sẽ thực hiện trong phương thức takeSnapShotClicked. Bây giờ trông giống như thế này
@IBAction func takeSnapShotClicked(_ sender: Any) { UIGraphicsBeginImageContextWithOptions(self.view.layer.frame.size, false, UIScreen.main.scale); guard let context = UIGraphicsGetCurrentContext() else {return } self.view.layer.render(in:context) self.snapShotImageView.image = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() }
Bước 7 - Xây dựng và chạy dự án. Bấm vào nút chụp nhanh. Bạn sẽ thấy ảnh chụp nhanh ở chế độ xem hình ảnh dưới cùng.