iOS 애플리케이션을 개발하는 동안 Alert 너비와 높이를 제어/조작해야 하는 경우가 있습니다. 익숙하지 않다면 문제가 될 수 있습니다.
여기서는 기본 경고 상자의 너비와 높이를 제어하는 방법을 볼 것입니다. 높이와 너비를 제어하기 위해 NSLayoutConstraint를 사용할 것입니다.
UIAlertController에 대한 자세한 내용은 -
를 참조하세요.https://developer.apple.com/documentation/uikit/uialertcontroller
여기에서 버튼이 있는 새 프로젝트를 만들 것이며 해당 버튼을 탭하면 맞춤 메시지와 함께 경고가 표시됩니다.
1단계 − Xcode 열기 → 새 프로젝트 → 단일 보기 응용 프로그램 → 이름을 "changeheightandwidth"로 지정합니다.
2단계 − Main.storyboard에서 하나의 버튼을 만들고 이름을 탭으로 지정하고 ViewController.swift에 @IBAction을 만들고 콘센트 이름을 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) }