Computer >> Máy Tính >  >> Lập trình >> IOS

Làm cách nào để loại bỏ Cảnh báo bằng cách nhấp vào bên ngoài cảnh báo trong iOS?

Việc hiểu và triển khai UIAlert có thể khá phức tạp, đặc biệt nếu bạn chưa quen với Phát triển iOS. Trong bài đăng này, chúng ta sẽ xem cách chúng ta có thể loại bỏ cảnh báo khi người dùng chạm vào bên ngoài hộp cảnh báo.

Đối với bản trình diễn này, chúng tôi sẽ sử dụng lớp UIAlert, để định cấu hình các cảnh báo và trang hành động với thông báo mà bạn muốn hiển thị và các hành động để chọn. Sau khi định cấu hình bộ điều khiển cảnh báo với các hành động và kiểu bạn muốn, hãy trình bày nó bằng cách sử dụng phương thức hiện tại (_:hoạt hình:hoàn thành :). UIKit hiển thị các cảnh báo và bảng hành động theo phương thức trên nội dung ứng dụng của bạn.

Bạn có thể đọc thêm về nó:https://developer.apple.com/documentation/uikit/uialertcontroller

Vì vậy, hãy bắt đầu,

Bước 1 - Mở Xcode và tạo một ứng dụng xem duy nhất và đặt tên là UIAlertSample.

Bước 2 - Trong Main. bảng phân cảnh thêm một nút và tạo @IBAction và đặt tên là showAlert,

@IBAction func showAlert(_ sender: Any) { }

Vì vậy, về cơ bản, khi chúng ta nhấn vào nút, một cảnh báo sẽ được hiển thị, khi người dùng nhấn vào bên ngoài cảnh báo, cảnh báo sẽ loại bỏ.

Bước 3 - Inside button action showAlert, Đầu tiên tạo đối tượng UIAlert như bên dưới

let uialert = UIAlertController(title: "WELCOME", message: "Welcome to my tutorials, tap outside to dismiss the alert", preferredStyle: .alert)

Bước 4 - Trình bày cảnh báo và khi hoàn thành, hãy thêm một bộ chọn như hình dưới đây,

self.present(uialert, animated: true, completion:{
   uialert.view.superview?.isUserInteractionEnabled = true
   uialert.view.superview?.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.dismissOnTapOutside)))
})

Bước 5 - Thêm chức năng bộ chọn,

@objc func dismissOnTapOutside(){
   self.dismiss(animated: true, completion: nil)
}

Bước 6 - Chạy ứng dụng,

import UIKit
class ViewController: UIViewController {
   override func viewDidLoad() {
      super.viewDidLoad()
   }
   @IBAction func showAlert(_ sender: Any) {
      let uialert = UIAlertController(title: "WELCOME", message: "Welcome to my tutorials, tap outside to dismiss the alert", preferredStyle: .alert)
      self.present(uialert, animated: true, completion:{
      uialert.view.superview?.isUserInteractionEnabled = true
      uialert.view.superview?.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.dismissOnTapOutside)))
      })
   }
   @objc func dismissOnTapOutside(){
      self.dismiss(animated: true, completion: nil)
   }
}