如何在Swift中更改UIAlertController中UITextField的高度?

时间:2017-09-12 08:41:57

标签: ios swift uitextfield uialertcontroller

我在UITextField中添加了UIAlertController。我想更改文本字段的高度。我试过这种方式:

let alertController = UIAlertController(title: "Comments", message: "Write your comments here", preferredStyle: UIAlertControllerStyle.alert)
alertController.addTextField { (textField : UITextField) -> Void in
    var frame: CGRect = textField.frame
    frame.size.height = 100
    textField.frame = frame
    textField.placeholder = "comment"
    print(textField.frame.size.height)
}

let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.cancel) { (result : UIAlertAction) -> Void in
}

let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.default) { (result : UIAlertAction) -> Void in
}

alertController.addAction(cancelAction)
alertController.addAction(okAction)
self.present(alertController, animated: true, completion: nil)

它不能正常工作。

2 个答案:

答案 0 :(得分:15)

这适用于约束

alertController.addTextField { textField in
    let heightConstraint = NSLayoutConstraint(item: textField, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: 100)
    textField.addConstraint(heightConstraint)
}

result of adding the constraint

答案 1 :(得分:8)

@ the4kman给出了正确答案,但您可以通过使用高度锚点来更轻松地添加约束:

textField.addConstraint(textField.heightAnchor.constraint(equalToConstant: 100))