使用弹出库

时间:2016-12-04 16:46:23

标签: ios swift popup

我在使用SCLAlertView-Swift库单击TableView上的按钮时尝试弹出窗口。

我还尝试定义约束,以便在旋转设备时尺寸正确。但是,它给了我以下错误:

  

' UIViewLayoutMarginsGuide' .leading">因为他们没有共同点   祖先。约束或其锚点是否引用了项目   不同的视图层次结构?这是非法的。'

我想我试图从TableViewController获取视图,因为我从该类调用此代码。

let alert = SCLAlertView()

alert.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

let margins = view.layoutMarginsGuide
alert.view.leadingAnchor.constraint(equalTo: margins.leadingAnchor).isActive = true
alert.view.trailingAnchor.constraint(equalTo: margins.trailingAnchor).isActive = true
alert.view.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 8).isActive=true
alert.view.topAnchor.constraint(equalTo: view.topAnchor, constant: 8).isActive=true

alert.showInfo("Login", subTitle: "")

为什么我说我在不同的视图层次结构中引用项目?我该怎么做才能解决这个问题?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

查看SCLAlertView here的实施情况,它似乎已添加为UIApplication.shared.keyWindow的子视图。

我建议将限制挂钩到应用的UIWindow,而不是TableViewController的视图。

let rv = UIApplication.shared.keyWindow! as UIWindow
let margins = rv.layoutMarginsGuide