จะมีบางกรณีที่คุณอาจได้รับข้อกำหนดในการควบคุม / จัดการความกว้างและความสูงของ Alert ขณะพัฒนาแอปพลิเคชัน iOS หากคุณไม่คุ้นเคยกับสิ่งเดียวกัน อาจสร้างปัญหาให้คุณ
ที่นี่เราจะมาดูวิธีการควบคุมความกว้างและความสูงของกล่องแจ้งเตือนเริ่มต้น สำหรับการควบคุมความสูงและความกว้าง เราจะใช้ NSLayoutConstraint
หากต้องการอ่านเพิ่มเติมเกี่ยวกับการอ้างอิง UIAlertController -
https://developer.apple.com/documentation/uikit/uialertcontroller
ในการนี้ เราจะสร้างโครงการใหม่โดยจะมีปุ่ม เมื่อแตะที่ปุ่มนั้น เราจะแสดงการแจ้งเตือนพร้อมข้อความที่กำหนดเอง
ขั้นตอนที่ 1 − เปิด Xcode → โครงการใหม่ → แอปพลิเคชั่นมุมมองเดียว → ตั้งชื่อมันว่า "การเปลี่ยนแปลงความสูงและความกว้าง"
ขั้นตอนที่ 2 − ใน Main.storyboard ให้สร้างปุ่มหนึ่งปุ่มแล้วตั้งชื่อให้แตะ สร้าง @IBAction ใน ViewController.swift และตั้งชื่อร้าน btnAtap
ขั้นตอนที่ 3 − เขียนโค้ดต่อไปนี้ในวิธีปุ่มของคุณ
สร้างวัตถุของ UIAlertController
let alert = UIAlertController(title: "Your Title", message: "Your Message", preferredStyle: UIAlertController.Style.alert)
สร้างข้อจำกัดด้านความสูงและความกว้าง
// height constraint let constraintHeight = NSLayoutConstraint( item: alert.view!, attribute: NSLayoutConstraint.Attribute.height, relatedBy: NSLayoutConstraint.Relation.equal, toItem: nil, attribute: NSLayoutConstraint.Attribute.notAnAttribute, multiplier: 1, constant: 100) alert.view.addConstraint(constraintHeight) // width constraint let constraintWidth = NSLayoutConstraint( item: alert.view!, attribute: NSLayoutConstraint.Attribute.width, relatedBy: NSLayoutConstraint.Relation.equal, toItem: nil, attribute: NSLayoutConstraint.Attribute.notAnAttribute, multiplier: 1, constant: 300) alert.view.addConstraint(constraintWidth)
นำเสนอมุมมองการแจ้งเตือนด้วยการดำเนินการ
let cancel = UIAlertAction(title: "Cancel", style: .cancel, handler: nil) alert.addAction(cancel) let OKAY = UIAlertAction(title: "Done", style: .default, handler: nil) alert.addAction(OKAY) self.present(alert, animated: true, completion: nil)
ขั้นตอนที่ 4 − เรียกใช้รหัส
สำหรับรหัสที่สมบูรณ์
@IBAction func btnATap(_ sender: Any) { let alert = UIAlertController(title: "Your Title", message: "Your Message", preferredStyle: UIAlertController.Style.alert) // height constraint let constraintHeight = NSLayoutConstraint( item: alert.view!, attribute: NSLayoutConstraint.Attribute.height, relatedBy: NSLayoutConstraint.Relation.equal, toItem: nil, attribute: NSLayoutConstraint.Attribute.notAnAttribute, multiplier: 1, constant: 100) alert.view.addConstraint(constraintHeight) // width constraint let constraintWidth = NSLayoutConstraint( item: alert.view!, attribute: NSLayoutConstraint.Attribute.width, relatedBy: NSLayoutConstraint.Relation.equal, toItem: nil, attribute: NSLayoutConstraint.Attribute.notAnAttribute, multiplier: 1, constant: 300) alert.view.addConstraint(constraintWidth) let cancel = UIAlertAction(title: "Cancel", style: .cancel, handler: nil) alert.addAction(cancel) let OKAY = UIAlertAction(title: "Done", style: .default, handler: nil) alert.addAction(OKAY) self.present(alert, animated: true, completion: nil) }