在swift中动态地在AlertController中添加tableview,怎么样?

时间:2016-07-26 08:02:25

标签: swift uitableview uialertcontroller

我需要在UITableView中显示UIAlertView等项目。我怎样才能做到这一点?? 或者如果我提出错误的问题,请告诉我极客吗?

我的屏幕应该像

提前致谢。

enter image description here

**编辑过的屏幕** enter image description here

2 个答案:

答案 0 :(得分:1)

创建一个新的UIViewController,然后在将modalPresentationStyle属性设置为UIModalPresentationOverCurrentContext之前。 UIViewController视图必须将clear color设置为背景颜色,并用{0.5}覆盖{alpha}并且颜色为灰色。这将创建半透明效果,然后添加您需要的其他UI元素(表视图,按钮等)。

我们假设您UIImageView用于显示上述内容。您将使用以下陈述来呈现它:

CustomViewController

在此之前,请按以下方式自定义let customVC = CustomViewController() customVC.modalPresentationStyle = .OverCurrentContext presentViewController(customVC, animated: false, completion: nil)

  • CustomViewController视图必须将背景颜色设置为CustomViewController

  • 覆盖clear color视图的图片视图,将其设置为CustomViewController = 0.5,将alpha颜色设置为深灰色。

  • 内容视图(您可以在其中放置表格视图和其他所需的UI组件)

因此,您将拥有此视图的层次结构:

enter image description here

答案 1 :(得分:1)

理想情况下,您必须使用表视图创建另一个UIViewController,并使用modalPresentationStyle显示覆盖,如@Azimov所说。

或者在UIViewController之外创建UITableView并将其添加为子视图。

否则,如果您仍想添加警报视图,则可以执行以下操作。

var alertView: UIAlertView!

alertView = UIAlertView(title: "", message:nil , delegate: nil, cancelButtonTitle:nil )

// Here you have to draft whole code for table view
// var newTableview: UITableView!
// Then you can add it on alert view by using accessoryView

alertView.setValue(newTableview, forKey: "accessoryView")