Когда мы рисуем изображение, мы хотим отобразить индикатор активности. Кто-нибудь может нам помочь?
Как отображать индикатор активности в середине экрана iphone?
Ответ 1
UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc]     
        initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
    activityView.center=self.view.center;
    [activityView startAnimating];
    [self.view addSubview:activityView];
		Ответ 2
Если вы используете Swift, вот как вы это делаете
let activityView = UIActivityIndicatorView(activityIndicatorStyle: .whiteLarge)
activityView.center = self.view.center
activityView.startAnimating()
self.view.addSubview(activityView)
		Ответ 3
Это правильный способ:
UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
activityIndicator.center = CGPointMake(self.view.frame.size.width / 2.0, self.view.frame.size.height / 2.0);
[self.view addSubview: activityIndicator];
[activityIndicator startAnimating];
[activityIndicator release];
Настройте маску авторезистировки, если вы поддерживаете вращение. Ура!!!
Ответ 4
Код обновлен для Swift 3
Быстрый код
import UIKit
class ViewController: UIViewController {
    let activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.whiteLarge)
    @IBOutlet weak var myBlueSubview: UIView!
    @IBAction func showButtonTapped(sender: UIButton) {
        activityIndicator.startAnimating()
    }
    @IBAction func hideButtonTapped(sender: UIButton) {
        activityIndicator.stopAnimating()
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        // set up activity indicator
        activityIndicator.center = CGPoint(x: myBlueSubview.bounds.size.width/2, y: myBlueSubview.bounds.size.height/2)
        activityIndicator.color = UIColor.yellow
        myBlueSubview.addSubview(activityIndicator)
    }
}
Примечания
-  
Вы можете центрировать индикатор активности в середине экрана, добавив его как подпункт к корневому
view, а не кmyBlueSubview.activityIndicator.center = CGPoint(x: self.view.bounds.size.width/2, y: self.view.bounds.size.height/2) self.view.addSubview(activityIndicator) -  
Вы также можете создать
UIActivityIndicatorViewв построителе интерфейса. Просто перетащите Индикатор активности > на раскадровку и задайте свойства. Обязательно проверьте Скрытия при остановке. Используйте розетку для вызоваstartAnimating()иstopAnimating(). См. этот учебник. 
-  
Помните, что цвет по умолчанию стиля
LargeWhite- белый. Поэтому, если у вас есть белый фон, вы не можете его увидеть, просто измените цвет на черный или любой другой цвет, который вы хотите.activityIndicator.color = UIColor.black -  
Обычный пример использования будет выполняться при выполнении фоновой задачи. Вот пример:
// start animating before the background task starts activityIndicator.startAnimating() // background task DispatchQueue.global(qos: .userInitiated).async { doSomethingThatTakesALongTime() // return to the main thread DispatchQueue.main.async { // stop animating now that background task is finished self.activityIndicator.stopAnimating() } } 
Ответ 5
Если вы хотите добавить текст вместе с индикатором активности, посмотрите http://nullpointr.wordpress.com/2012/02/27/ios-dev-custom-activityindicatorview/
Ответ 6
Попробуйте этот путь
UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
    activityIndicator.frame = CGRectMake(10.0, 0.0, 40.0, 40.0);
    activityIndicator.center = super_view.center;
    [super_view addSubview: activityIndicator];
[activityIndicator startAnimating];
		Ответ 7
Вы можете установить положение, подобное этому
        UIActivityIndicatorView *activityView = 
[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
activityView.frame = CGRectMake(120, 230, 50, 50);
[self.view addSubview:activityView];
Соответственно измените размер рамки.....
Ответ 8
Если вы хотите центрировать прядильщик с помощью AutoLayout, выполните следующие действия:
UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
[activityView startAnimating];
[self.view addSubview:activityView];
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:activityView
                                                      attribute:NSLayoutAttributeCenterX
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeCenterX
                                                     multiplier:1.0
                                                       constant:0.0]];
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:activityView
                                                      attribute:NSLayoutAttributeCenterY
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeCenterY
                                                     multiplier:1.0
                                                       constant:0.0]];
		Ответ 9
Для Swift 3 вы можете использовать следующее:
 func setupSpinner(){
    spinner = UIActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 40, height:40))
    spinner.color = UIColor(Colors.Accent)
    self.spinner.center = CGPoint(x:UIScreen.main.bounds.size.width / 2, y:UIScreen.main.bounds.size.height / 2)
    self.view.addSubview(spinner)
    spinner.hidesWhenStopped = true
}
		Ответ 10
Надеюсь, что это сработает:
// create activity indicator 
UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] 
    initWithFrame:CGRectMake(0.0f, 0.0f, 20.0f, 20.0f)];
[activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite];
...
 [self.view addSubview:activityIndicator];
// release it
[activityIndicator release];
		Ответ 11
? Если вы хотите попытаться сделать это с помощью интерфейса, вы можете просмотреть мое видео для этого. Таким образом, вам не нужно писать какой-либо код, чтобы показать индикатор активности в середине экрана iPhone.
Ответ 12
Swift 3, xcode 8.1
Вы можете использовать небольшое расширение для размещения UIActivityIndicatorView в центре UIView и унаследованных классов UIView:
код
extension UIActivityIndicatorView {
    convenience init(activityIndicatorStyle: UIActivityIndicatorViewStyle, color: UIColor, placeInTheCenterOf parentView: UIView) {
        self.init(activityIndicatorStyle: activityIndicatorStyle)
        center = parentView.center
        self.color = color
        parentView.addSubview(self)
    }
}
Как использовать
let activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: .whiteLarge, color: .gray,  placeInTheCenterOf: view)
activityIndicator.startAnimating()
Полный пример
В этом примере UIActivityIndicatorView размещен в центре представления ViewControllers:
import UIKit
class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        let activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: .whiteLarge, color: .gray,  placeInTheCenterOf: view)
        activityIndicator.startAnimating()
    }
}
extension UIActivityIndicatorView {
    convenience init(activityIndicatorStyle: UIActivityIndicatorViewStyle, color: UIColor, placeInTheCenterOf parentView: UIView) {
        self.init(activityIndicatorStyle: activityIndicatorStyle)
        center = parentView.center
        self.color = color
        parentView.addSubview(self)
    }
}
		Ответ 13
import UIKit
class ViewController: UIViewController {
    @IBOutlet weak var textLbl: UILabel!
    var containerView = UIView()
    var loadingView = UIView()
    var activityIndicator = UIActivityIndicatorView()
    override func viewDidLoad() {
        super.viewDidLoad()
        let _  = Timer.scheduledTimer(withTimeInterval: 10, repeats: false) { (_) in
            self.textLbl.text = "Stop ActivitiIndicator"
            self.activityIndicator.stopAnimating()
            self.containerView.removeFromSuperview()
        }
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
    @IBAction func palyClicked(sender: AnyObject){
        containerView.frame = self.view.frame
        containerView.backgroundColor = UIColor(red: 0/255, green: 0/255, blue: 0/255, alpha: 0.3)
        self.view.addSubview(containerView)
        loadingView.frame = CGRect(x: 0, y: 0, width: 80, height: 80)
        loadingView.center = self.view.center
        loadingView.backgroundColor = UIColor(red: 0/255, green: 0/255, blue: 0/255, alpha: 0.5)
        loadingView.clipsToBounds = true
        loadingView.layer.cornerRadius = 10
        containerView.addSubview(loadingView)
        activityIndicator.frame = CGRect(x: 0, y: 0, width: 40, height: 40)
        activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.whiteLarge
        activityIndicator.center = CGPoint(x:loadingView.frame.size.width / 2, y:loadingView.frame.size.height / 2);
        activityIndicator.startAnimating()
        loadingView.addSubview(activityIndicator)
    }
}
		Ответ 14
Я нашел способ отображения индикатора активности с минимальным кодом:
прежде всего импортируйте свой набор пользовательских интерфейсов
import UIKit;
Затем вам нужно запустить индикатор активности
let activityIndicator:UIActivityIndicatorView = UIActivityIndicatorView();
Затем просто скопируйте эти функции ниже, которые являются самообучающимися, и назовите их, когда они вам понадобятся:
func startLoading(){
    activityIndicator.center = self.view.center;
    activityIndicator.hidesWhenStopped = true;
    activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.gray;
    view.addSubview(activityIndicator);
    activityIndicator.startAnimating();
    UIApplication.shared.beginIgnoringInteractionEvents();
}
func stopLoading(){ 
    activityIndicator.stopAnimating();
    UIApplication.shared.endIgnoringInteractionEvents();
}
		
