如何在UIAlertView中动态添加UITableView。将UIAlertView的子视图添加到UITableView后,它不会显示。
override func viewDidLoad() {
super.viewDidLoad()
tableView.frame = CGRectMake(0, 50, 320, 200);
tableView.delegate = self
tableView.dataSource = self
tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
}
@IBAction func textFieldCliked(sender: AnyObject) {
alertView.message = "table view"
alertView.addButtonWithTitle("Ok")
alertView.addSubview(tableView)
alertView.show()
}
答案 0 :(得分:2)
在Swift中创建UITableView:
创建一个UITableViewController类。
使用必要的代码填充其代理(行数,didSelect,cellForRowAtIndexPath等)。
现在在AlertViewController
。
将所需数据传递给TableView(如行数和内容数组)。
将TableView实例添加到警报视图中。
我的代码段:
let alertController : UIAlertController = UIAlertController(title: "Select email ID", message: nil, preferredStyle: .Alert)
alertController.view.backgroundColor = UIColor.whiteColor()
alertController.view.layer.cornerRadius = 8.0
let contactNumVC = contactNumberTableViewController ()
contactNumVC.count = emailIDs.count
contactNumVC.numbersArray = emailIDs
contactNumVC.preferredContentSize = CGSizeMake(alertController.view.frame.width, (44 * CGFloat(emailIDs.count)))
alertController.setValue(contactNumVC, forKeyPath: "contentViewController")
答案 1 :(得分:0)
我不认为你可以用UIAlertView
做到这一点,但你可以制作一个小视图并以模态或类似UIPopoverPresentationController
答案 2 :(得分:0)
要在多个应用程序中对表/图像或自定义按钮操作使用警报类型行为,我创建了带有所有这些示例的示例项目通用弹出框。这不使用过渡委托。 该项目还将演示自定义字体和颜色,以适应您的应用主题。
在情节提要中创建自定义tableview / imageview / button并按以下方式调用
if let vc = self.storyboard?.instantiateViewController(withIdentifier: "TableContentViewController") as? TableContentViewController{
vc.modalPresentationStyle = .overCurrentContext
vc.popOverDelegate = self
self.present(vc, animated: false, completion: nil)
}