Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 加载数据时无法获取要显示的UIActivityIndicatorView_Iphone_Ios_Uiactivityindicatorview - Fatal编程技术网

Iphone 加载数据时无法获取要显示的UIActivityIndicatorView

Iphone 加载数据时无法获取要显示的UIActivityIndicatorView,iphone,ios,uiactivityindicatorview,Iphone,Ios,Uiactivityindicatorview,我在TableViewController上有一个UIActivityIndicator视图。当我在init中开始设置动画时,我将看到活动指示器,但当我将start命令移动到其他任何位置时,它将不工作/显示。有没有人知道我做错了什么,我似乎在这里找不到。我希望在加载数据时显示它 TableViewController.h #import <UIKit/UIKit.h> @interface CategoryTableViewController : UITableViewCont

我在TableViewController上有一个UIActivityIndicator视图。当我在init中开始设置动画时,我将看到活动指示器,但当我将start命令移动到其他任何位置时,它将不工作/显示。有没有人知道我做错了什么,我似乎在这里找不到。我希望在加载数据时显示它

TableViewController.h

#import <UIKit/UIKit.h>


@interface CategoryTableViewController : UITableViewController {
    NSArray *cats;
    UIActivityIndicatorView *activityIndicator;
}

@end
我会这样做:

- (id)initWithStyle:(UITableViewStyle)style {
  //your code
  [self.view addSubview:activityIndicator];
  [activityIndicator startAnimating];
}

- (void)viewDidAppear:(BOOL)animated {
  [super viewDidLoad];
  [activityIndicator stopAnimating];
}
我找到了一个关于这个的教程,它展示了一个非常好的方法: 我会这样做:

- (id)initWithStyle:(UITableViewStyle)style {
  //your code
  [self.view addSubview:activityIndicator];
  [activityIndicator startAnimating];
}

- (void)viewDidAppear:(BOOL)animated {
  [super viewDidLoad];
  [activityIndicator stopAnimating];
}
我找到了一个关于这个的教程,它展示了一个非常好的方法:

根据这段代码,我认为有可能
tableView
没有设置为
self.view
。您正在
视图中添加它
,因此您的方法可能会
[activityIndicator startAnimating]
实际上正在工作,但您必须将其设置为“将子视图置于前面”。它可能在tableview下面设置了动画


根据这段代码,我认为有可能
tableView
没有设置为
self.view
。您正在
视图中添加它
,因此您的方法可能会
[activityIndicator startAnimating]
实际上正在工作,但您必须将其设置为“将子视图置于前面”。它可能在tableview下面设置了动画。

我过去注意到,UI线程挂起时,UIActivityIndicators确实会绘制,但是,您可能需要在后台线程中执行任务,以便UI线程为进度指示器设置动画。看见一般来说,最好在后台线程上执行长时间的操作,以便UI线程能够对用户保持响应。

我过去注意到,UI线程挂起时,UIActivityIndicators确实会绘制,但是,您可能需要在后台线程中执行任务,以便UI线程为进度指示器设置动画。看见一般来说,最好在后台线程上执行长时间的操作,以便UI线程能够对用户保持响应。

是否
self.view
已在init方法中可用?在
viewDidLoad
方法中不应该执行这样的操作吗?

在init方法中
self.view
已经可用了吗?在
viewDidLoad
方法中不应该执行这样的操作吗?

从它正常显示的init函数调用startAnimating的那一刻起,这似乎不是问题。从它正常显示的init函数调用startAnimating的那一刻起,这似乎不是问题。
[self.view addSubview:activityIndicator];