Индикатор активности не отображается в центре пользовательского UIAlertView, когда контроллер представления поиска отжимает ВК - PullRequest
0 голосов
/ 09 января 2019

Я хочу показать индикатор активности на UIAlertViewController, который содержит представление таблицы, поэтому он отлично работает, , но второй случай - когда контроллер поиска появляется в Parent of UIAlertViewController, тогда индикатор активности не появляется в центре UIAlertViewController.

Прикрепление изображения перед прикреплением searchVC на Parent output on custom alertview controller , without adding search VC on parent VC

И когда searchVC добавлен в Parent, тогда activity indicator goes up of custom alertVC

Ниже приведен код индикатора активности

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

1 Ответ

0 голосов
/ 09 января 2019

Окончательно решил это, установив ограничения следующим образом

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()
}
...