Swift中的活动指标

Var*_*ria 5 function uiactivityindicatorview ios swift

我正在尝试使用swift制作活动指示器,但有一些我缺少的东西

以下是启动活动按钮按钮的代码:

Indicator = ActivityIndicator().StartActivityIndicator(ViewController());
Run Code Online (Sandbox Code Playgroud)

这是停止活动按钮的代码

 ActivityIndicator().StopActivityIndicator(ViewController(),indicator: Indicator);
Run Code Online (Sandbox Code Playgroud)

和ACtivity指标类的代码是

class ActivityIndicator: NSObject {

    var myActivityIndicator:UIActivityIndicatorView!

    func StartActivityIndicator(obj:UIViewController) -> UIActivityIndicatorView
    {

        self.myActivityIndicator = UIActivityIndicatorView(frame:CGRectMake(100, 100, 100, 100)) as UIActivityIndicatorView;

        self.myActivityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
        self.myActivityIndicator.center = obj.view.center;

        obj.view.addSubview(myActivityIndicator);

        self.myActivityIndicator.startAnimating();
        return self.myActivityIndicator;
    }

    func StopActivityIndicator(obj:UIViewController,indicator:UIActivityIndicatorView)-> Void
    {
            indicator.removeFromSuperview();
    }


}
Run Code Online (Sandbox Code Playgroud)

谢谢问题解决了

在写代码的时候我知道我必须在函数中传递自己的时间,但当时我不知道什么类型是自我引用所以我不知道类型然后我知道类型然后我决定尝试接收不同类型(UIView,UIActivityIndi​​catorView,UIViewController)然后我发现它应该是UIViewController但我忘了它应该通过自我和我寻找什么传递函数调用,我想让我们尝试UIViewController它并没有给我错误所以我认为这是正确的,但是当它不起作用时,我认为我足够接近,所以最好向专家询问这个问题.正如我所料,问题在几分钟内就解决了

Swift 3版

class ActivityIndicator: NSObject {

    var myActivityIndicator:UIActivityIndicatorView!

    func StartActivityIndicator(obj:UIViewController) -> UIActivityIndicatorView
    {

        self.myActivityIndicator = UIActivityIndicatorView(frame:CGRect(x: 100, y: 100, width: 100, height: 100)) as UIActivityIndicatorView

        self.myActivityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.gray
        self.myActivityIndicator.center = obj.view.center;

        obj.view.addSubview(myActivityIndicator);

        self.myActivityIndicator.startAnimating();
        return self.myActivityIndicator;
    }

    func StopActivityIndicator(obj:UIViewController,indicator:UIActivityIndicatorView)-> Void
    {
        indicator.removeFromSuperview();
    }


}
Run Code Online (Sandbox Code Playgroud)

Leo*_*Leo 5

似乎每次调用start/stop时,都会创建一个ViewController Just replace ViewControllerto self和try 的新实例

例如

Indicator = ActivityIndicator().StartActivityIndicator(self);
Run Code Online (Sandbox Code Playgroud)

  • @VarunNaharia通过使用`ViewController()`,你创建了一个`ViewController`类的新实例,除非你明确地呈现它,否则不会显示该实例.使用`self`指的是调用该方法的控制器的实例,并且由于**被显示,您将看到您的指示符. (2认同)