如何在 swift iOS 中的 UIAlertcontroller 中显示 UITableview?
Posted
技术标签:
【中文标题】如何在 swift iOS 中的 UIAlertcontroller 中显示 UITableview?【英文标题】:how to show UITableview in UIAlertcontroller in swift iOS? 【发布时间】:2016-08-10 05:28:16 【问题描述】:我对 swift 编码非常陌生,所以我想知道有什么方法可以使用 swift 在 alertcontroller 中显示 tableview。
【问题讨论】:
您的要求是什么? 看到一次***.com/questions/20737426/… 谢谢,我可以显示 tableview 但如何在单击 tableview 单元格时关闭相同的 uialertcontroller? 【参考方案1】:var alrController = UIAlertController(title: "\n\n\n\n\n\n", message: nil, preferredStyle: UIAlertControllerStyle.ActionSheet)
let margin:CGFloat = 8.0
let rect = CGRectMake(margin, margin, alrController.view.bounds.size.width - margin * 4.0, 100.0)
var tableView = UITableView(frame: rect)
tableView.delegate = self
tableView.dataSource = self
tableView.backgroundColor = UIColor.greenColor()
alrController.view.addSubview(tableView)
let somethingAction = UIAlertAction(title: "Something", style: UIAlertActionStyle.Default, handler: (alert: UIAlertAction!) in println("something"))
let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: (alert: UIAlertAction!) in println("cancel"))
alrController.addAction(somethingAction)
alrController.addAction(cancelAction)
self.presentViewController(alrController, animated: true, completion:)
【讨论】:
如果你能解释一下你的代码做了什么,那么它实际上可以节省一些时间。谢谢。 :)【参考方案2】:private var alertController = UIAlertController()
private var tblView = UITableView()
private func setupCitySelectionAlert()
let alertVC = UIViewController.init()
let rect = CGRect(x: 0.0, y: 0.0, width: 300.0, height: 300.0)
alertVC.preferredContentSize = rect.size
tblView = UITableView(frame: rect)
tblView.delegate = self;
tblView.dataSource = self;
tblView.tableFooterView = UIView(frame: .zero)
tblView.separatorStyle = .singleLine
alertVC.view.addSubview(tblView)
alertVC.view.bringSubviewToFront(tblView)
alertVC.view.isUserInteractionEnabled = true
tblView.isUserInteractionEnabled = true
tblView.allowsSelection = true
self.alertController = UIAlertController(title: "Title", message: nil, preferredStyle: .alert)
alertController.setValue(alertVC, forKey: "contentViewController")
let cancelAction = UIAlertAction(title: "Cancel", style: .default, handler: nil)
alertController.addAction(cancelAction)
self.present(alertController, animated: true, completion: nil)
【讨论】:
以上是关于如何在 swift iOS 中的 UIAlertcontroller 中显示 UITableview?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 swift iOS 中的 UIAlertcontroller 中显示 UITableview?
如何在 UIScrollView iOS/Swift 中的控件页面之间水平滚动