Activity 当搜索视图控制器俯卧撑时,指示器不会出现在自定义 UIAlertView 的中心 VC

Activity Indicator not appears center on custom UIAlertView when search view controller push ups VC

我想在包含 table 视图的 UIAlertViewController 上显示 activity 指示器,所以它工作得很好,但是第二种情况是搜索控制器出现在然后 UIAlertViewController activity 指示器不会出现在 UIAlertViewController 的中心。

在父级上附加 searchVC 之前附加图像

当 searchVC 添加到 Parent 时

以下是activity指标的代码

var actInd: UIActivityIndicatorView = UIActivityIndicatorView()

func startActivityIndicator() {
    self.view.isUserInteractionEnabled = false
    let loadingView: UIView = UIView()
    loadingView.frame =  CGRect(x: 0, y: 0, width: 80.0, height: 80.0)
    loadingView.center = self.view.center
    loadingView.backgroundColor = UIColor(red: 44/255, green: 44/255, blue: 44/255, alpha: 0.7)
    loadingView.clipsToBounds = true
    loadingView.layer.cornerRadius = 10
    actInd.frame = CGRect(x: 0, y: 0, width: 40.0, height: 40.0)
    actInd.style = .whiteLarge
    actInd.center = CGPoint(x: loadingView.frame.size.width / 2, y: loadingView.frame.size.height / 2)
    loadingView.addSubview(actInd)
    self.view.addSubview(loadingView)
    actInd.startAnimating()
}
func stopActivityIndicator() {
    self.view.isUserInteractionEnabled = true
    actInd.stopAnimating()
    let view = actInd.superview
    view?.removeFromSuperview()
}

以上代码是我在 UIViewController

的扩展中添加的

终于通过如下方式设置约束解决了

func startActivityIndicator() {
    self.view.isUserInteractionEnabled = false
    let loadingView: UIView = UIView()
    loadingView.translatesAutoresizingMaskIntoConstraints = false
    actInd.translatesAutoresizingMaskIntoConstraints = false
    self.view.addSubview(loadingView)
    loadingView.addSubview(actInd)
    loadingView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
    loadingView.centerYAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true
    loadingView.widthAnchor.constraint(equalToConstant: 80.0).isActive = true
    loadingView.heightAnchor.constraint(equalToConstant: 80.0).isActive = true
    loadingView.center = self.view.center
    loadingView.backgroundColor = UIColor(red: 44/255, green: 44/255, blue: 44/255, alpha: 0.7)
    loadingView.clipsToBounds = true
    loadingView.layer.cornerRadius = 10
    actInd.leadingAnchor.constraint(equalTo: loadingView.leadingAnchor).isActive = true
    actInd.trailingAnchor.constraint(equalTo: loadingView.trailingAnchor).isActive = true
    actInd.topAnchor.constraint(equalTo: loadingView.topAnchor).isActive = true
    actInd.bottomAnchor.constraint(equalTo: loadingView.bottomAnchor).isActive = true
    actInd.style = .whiteLarge
    actInd.center = CGPoint(x: loadingView.frame.size.width / 2, y: loadingView.frame.size.height / 2)
    actInd.startAnimating()
}