Swift iOS - 如何将子视图添加到 Window 的中心?
Swift iOS -How to Add Subview to Window's Center?
我有一个 activity 指标显示在 iPhone 和 iPad 上。在 iPad 分屏模式下,它会呈现给调用它的视图的任何一侧。相反,我希望它显示在 middle/center 和 window 的屏幕上。如果我这样做,无论是在纵向 iPhone 还是在分屏模式 iPad 上,它都将始终位于屏幕中央。
我该怎么做?
MyView: UIViewController{
let actInd = UIActivityIndicatorView(activityIndicatorStyle: .whiteLarge)
@IBAction fileprivate func buttonPressed(_ sender: UIButton) {
guard let window = UIApplication.shared.keyWindow else { return }
//how to add actInd as subview to the window' screen?
actInd.startAnimating()
}
}
Window 是 UIView
的子类。只需将它添加为子视图,就像将一个视图添加到另一个视图一样。但请记住 window 在您的应用程序中共享,因此每次添加它都会消耗内存,在您的工作完成后将其删除。
如果你想把它放在 window 的中心,你可以使用 autoResizingMask
或者给它添加约束。
很简单。关闭自动调整大小蒙版。添加add actInd到window,然后设置中心anchors.
actInd.translatesAutoresizingMaskIntoConstraints = false
window.addSubview(actInd)
actInd.centerXAnchor.constraint(equalTo: window.centerXAnchor).isActive = true
actInd.centerYAnchor.constraint(equalTo: window.centerYAnchor).isActive = true
我有一个 activity 指标显示在 iPhone 和 iPad 上。在 iPad 分屏模式下,它会呈现给调用它的视图的任何一侧。相反,我希望它显示在 middle/center 和 window 的屏幕上。如果我这样做,无论是在纵向 iPhone 还是在分屏模式 iPad 上,它都将始终位于屏幕中央。
我该怎么做?
MyView: UIViewController{
let actInd = UIActivityIndicatorView(activityIndicatorStyle: .whiteLarge)
@IBAction fileprivate func buttonPressed(_ sender: UIButton) {
guard let window = UIApplication.shared.keyWindow else { return }
//how to add actInd as subview to the window' screen?
actInd.startAnimating()
}
}
Window 是 UIView
的子类。只需将它添加为子视图,就像将一个视图添加到另一个视图一样。但请记住 window 在您的应用程序中共享,因此每次添加它都会消耗内存,在您的工作完成后将其删除。
如果你想把它放在 window 的中心,你可以使用 autoResizingMask
或者给它添加约束。
很简单。关闭自动调整大小蒙版。添加add actInd到window,然后设置中心anchors.
actInd.translatesAutoresizingMaskIntoConstraints = false
window.addSubview(actInd)
actInd.centerXAnchor.constraint(equalTo: window.centerXAnchor).isActive = true
actInd.centerYAnchor.constraint(equalTo: window.centerYAnchor).isActive = true