UIAlertViewConroller 中对 UITextView 的约束
Constraints to UITextView inside UIAlertViewConroller
我在UIAlertViewController
里面有一个UITextView
。我需要以编程方式将前导和尾随约束设置为 UITextView
。
截图
这是我的代码
func popUpController()
{
let alert = UIAlertController(title: "Additional Notes", message: "Write your additional notes here.", preferredStyle: .alert)
let textView = UITextView()
textView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
let color = UIColor(red: 224/255, green: 224/255, blue: 224/255, alpha: 1.0).cgColor
textView.layer.borderColor = color
textView.layer.borderWidth = 1.0
textView.layer.cornerRadius = 5.0
let controller = MyActivitiesViewController()
textView.frame = controller.view.frame
controller.view.addSubview(textView)
alert.setValue(controller, forKey: "contentViewController")
let height: NSLayoutConstraint = NSLayoutConstraint(item: alert.view, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: 180)
alert.view.addConstraint(height)
let saveAction = UIAlertAction(title: "OK", style: .default, handler: nil)
let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
alert.addAction(saveAction)
alert.addAction(cancelAction)
self.present(alert, animated: true, completion: {
textView.becomeFirstResponder()
})
}
请注意,这只是一种解决方法。
如果你想给 alertcontroller 更高的高度添加更多 new line to 标题.
如果你想修改这个
,请根据你的要求调整约束
func showAlertController()
{
let alertController = UIAlertController(title: "Your title \n\n\n\n\n\n\n\n", message: nil, preferredStyle: UIAlertControllerStyle.alert)
let customView = UITextView()
customView.translatesAutoresizingMaskIntoConstraints = false
alertController.view.autoresizesSubviews = true
let somethingAction = UIAlertAction(title: "Some Action", style: UIAlertActionStyle.default, handler: {(alert: UIAlertAction!) in
print(customView.text)
})
let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.cancel, handler: {(alert: UIAlertAction!) in print("cancel")})
alertController.addAction(somethingAction)
alertController.addAction(cancelAction)
alertController.view.addSubview(customView)
customView.topAnchor.constraint(equalTo: alertController.view.topAnchor, constant: 50).isActive = true
customView.rightAnchor.constraint(equalTo: alertController.view.rightAnchor, constant: -10).isActive = true
customView.leftAnchor.constraint(equalTo: alertController.view.leftAnchor, constant: 10).isActive = true
customView.bottomAnchor.constraint(equalTo: alertController.view.bottomAnchor, constant: -60).isActive = true
customView.backgroundColor = UIColor.red
self.present(alertController, animated: true) {
}
}
我在UIAlertViewController
里面有一个UITextView
。我需要以编程方式将前导和尾随约束设置为 UITextView
。
截图
这是我的代码
func popUpController()
{
let alert = UIAlertController(title: "Additional Notes", message: "Write your additional notes here.", preferredStyle: .alert)
let textView = UITextView()
textView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
let color = UIColor(red: 224/255, green: 224/255, blue: 224/255, alpha: 1.0).cgColor
textView.layer.borderColor = color
textView.layer.borderWidth = 1.0
textView.layer.cornerRadius = 5.0
let controller = MyActivitiesViewController()
textView.frame = controller.view.frame
controller.view.addSubview(textView)
alert.setValue(controller, forKey: "contentViewController")
let height: NSLayoutConstraint = NSLayoutConstraint(item: alert.view, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: 180)
alert.view.addConstraint(height)
let saveAction = UIAlertAction(title: "OK", style: .default, handler: nil)
let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
alert.addAction(saveAction)
alert.addAction(cancelAction)
self.present(alert, animated: true, completion: {
textView.becomeFirstResponder()
})
}
请注意,这只是一种解决方法。
如果你想给 alertcontroller 更高的高度添加更多 new line to 标题.
如果你想修改这个
,请根据你的要求调整约束 func showAlertController()
{
let alertController = UIAlertController(title: "Your title \n\n\n\n\n\n\n\n", message: nil, preferredStyle: UIAlertControllerStyle.alert)
let customView = UITextView()
customView.translatesAutoresizingMaskIntoConstraints = false
alertController.view.autoresizesSubviews = true
let somethingAction = UIAlertAction(title: "Some Action", style: UIAlertActionStyle.default, handler: {(alert: UIAlertAction!) in
print(customView.text)
})
let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.cancel, handler: {(alert: UIAlertAction!) in print("cancel")})
alertController.addAction(somethingAction)
alertController.addAction(cancelAction)
alertController.view.addSubview(customView)
customView.topAnchor.constraint(equalTo: alertController.view.topAnchor, constant: 50).isActive = true
customView.rightAnchor.constraint(equalTo: alertController.view.rightAnchor, constant: -10).isActive = true
customView.leftAnchor.constraint(equalTo: alertController.view.leftAnchor, constant: 10).isActive = true
customView.bottomAnchor.constraint(equalTo: alertController.view.bottomAnchor, constant: -60).isActive = true
customView.backgroundColor = UIColor.red
self.present(alertController, animated: true) {
}
}