如何在 iOS 中控制默认警告对话框的宽度和高度?


在开发 iOS 应用程序时,您可能会遇到需要控制/操作警告框宽度和高度的情况。如果您不熟悉这一点,可能会给您带来麻烦。

在这里,我们将了解如何控制默认警告框的宽度和高度。为了控制高度和宽度,我们将使用 NSLayoutConstraint。

要了解更多关于 UIAlertController 的信息,请参考 -

 https://developer.apple.com/documentation/uikit/uialertcontroller

在本例中,我们将创建一个新项目,其中包含一个按钮,点击该按钮将显示带有自定义消息的警告。

步骤 1 - 打开 Xcode → 新建项目 → 单视图应用程序 → 让我们将其命名为“changeheightandwidth”

步骤 2 - 在 Main.storyboard 中创建一个按钮并将其命名为 tap,在 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)
}

更新于: 2019年8月7日

2K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告