6

Uialertcontroller 中没有类似 addtextfield 方法的方法。我还没有找到任何关于如何自定义 MDCAlertControllers 的示例。有人有想法吗?

4

2 回答 2

3

我认为这是不可能的。文档说 :

MDCAlertController 类旨在按原样使用,不支持子类化。此类的视图层次结构是私有的,不得修改。

于 2019-06-26T09:14:01.840 回答
1

现在可以通过使用accessoryView.
只需将其设置为您的自定义视图并将警报消息设置为空白即可。

alertController.accessoryView = myCustomView


代码示例(使用 SnapKit 进行布局)

let title = "My title"        
let alertController = MDCAlertController(title: title, message: "")
let confirmAction = MDCAlertAction(title:"Confirm") { [weak self] _ in
    //your action here
}
let cancelAction = MDCAlertAction(title:"Cancel")

let width = UIScreen.main.bounds.width * 0.91
let testView = UIView()
let button = UIButton()
button.setTitle("Test", for: .normal)
testView.addSubview(button)
button.snp.makeConstraints { (make) in
    make.center.equalToSuperview()
}
testView.backgroundColor = .blue //just to show where the view is
testView.snp.makeConstraints { (make) in
    make.width.equalTo(width)
    make.height.equalTo(100)
}

alertController.accessoryView = testView
alertController.addAction(confirmAction)
alertController.addAction(cancelAction)
alertController.defaultTheming()

present(alertController, animated:true)

上述代码的结果

在此处输入图像描述

于 2020-09-19T18:17:18.080 回答