Search code examples
iosswiftuialertviewuiactivityindicatorview

Adjust UIActivityIndicatorView position in AlertView - Swift


I've been trying to adjust the position of IndicatorView inside UIAlertView, but it never works. i tried to set for loadingIndicator loadingIndicator.center = CGPointMake(alert.bounds.size.width / 2, alert.bounds.size.height - 50) but it didn't apply at all, take a look on this photo :

enter image description here

alert = UIAlertView(title: "Loading...", message: nil , delegate: nil, cancelButtonTitle: nil)
        loadingIndicator = UIActivityIndicatorView(frame: CGRectMake(50, 10, 37, 37))
        loadingIndicator.center = self.view.center
        loadingIndicator.hidesWhenStopped = true
        loadingIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
        loadingIndicator.startAnimating();

        alert.setValue(loadingIndicator, forKey: "accessoryView")
        loadingIndicator.startAnimating()
        alert.show();

Solution

  • enter image description here

    Try following code:

            var alert : UIAlertView = UIAlertView(title: "Loading...", message: nil , delegate: nil, cancelButtonTitle: nil)
            var viewBack:UIView = UIView(frame: CGRectMake(83,0,100,100))
    
            var loadingIndicator: UIActivityIndicatorView = UIActivityIndicatorView(frame: CGRectMake(50, 10, 37, 37))
            loadingIndicator.center = viewBack.center
            loadingIndicator.hidesWhenStopped = true
            loadingIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
            loadingIndicator.startAnimating();
            viewBack.addSubview(loadingIndicator)
            viewBack.center = self.view.center
            alert.setValue(viewBack, forKey: "accessoryView")
            loadingIndicator.startAnimating()
            alert.show();