重新定位UIAlertView

时间:2017-06-28 10:32:42

标签: ios swift

打开ViewController时,我想在屏幕底部简化UIAlertView

现在,我创建一个警报视图,在2秒后显示它并隐藏警报 但是,警报视图仅显示在屏幕中央。

如何将其重新定位在屏幕底部?

这是我的代码:

let alert = UIAlertController(title: "", message: "Please Swipe To Refresh After 2 seconds", preferredStyle: .alert)
alert.view.frame.origin.x = 150
alert.view.frame.origin.y = 250
self.present(alert, animated: true, completion: nil)
let indicator = UIActivityIndicatorView(frame: alert.view.bounds)
indicator.autoresizingMask = [.flexibleWidth, .flexibleHeight]
alert.view.addSubview(indicator)
indicator.isUserInteractionEnabled = false 
indicator.startAnimating()       
let when = DispatchTime.now() + 2
DispatchQueue.main.asyncAfter(deadline: when) {
    alert.dismiss(animated: true, completion: nil)
}

2 个答案:

答案 0 :(得分:5)

您无法移动并UIAlertController设置其展示样式,即使有解决方法也不要使用它。为了达到你想要的目的,你有不同的选择:

  • 使用一个简单的UIView子类,在show方法中只需要要用作超级视图的视图
  • 创建一个UIViewController子类并使用UIPresentationController呈现它,如果您不熟悉iOS开发,这可能会非常困难
  • 使用github上已有的库之一,例如this

答案 1 :(得分:0)

在UIAlertController的构造函数中使用(.... , preferredStyle: .actionSheet)