我有一个自定义单元格加载在我的集合视图的底部。它唯一的工作是显示活动指示器视图 - 这在应用程序进行新的工作调用时发生。
所以我将它添加到单元格中,如下所示:
BBLoaderCell *loaderCell = [collectionView dequeueReusableCellWithReuseIdentifier:@"LoaderCell" forIndexPath:indexPath];
UIActivityIndicatorView * activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
activityIndicator.hidesWhenStopped = YES;
activityIndicator.hidden = NO;
activityIndicator.center = loaderCell.imageView.center;
activityIndicator.tag = 10;
[loaderCell.imageView addSubview:activityIndicator];
[activityIndicator startAnimating];
return loaderCell;
Run Code Online (Sandbox Code Playgroud)
这在我视图的最后一个单元格中显示了一个活动指示器 - 但它不旋转。有任何想法吗?
找到解决方案
根据评论 - 这是一个线程问题。我还采纳了将代码移动到单元格的自定义 nib 文件中的建议。
这是重构的代码:
BBLoaderCell *loaderCell = [collectionView dequeueReusableCellWithReuseIdentifier:@"LoaderCell" forIndexPath:indexPath];
loaderCell.backgroundColor = [UIColor clearColor];
if (self.loadingMore == NO){
dispatch_async(dispatch_get_main_queue(), ^{
activityIndicator.hidden = YES;
[loaderCell.spinner stopAnimating];
});
}
else if (self.loadingMore == YES){
dispatch_async(dispatch_get_main_queue(), ^{
activityIndicator.hidden = NO;
[loaderCell.spinner startAnimating]; …Run Code Online (Sandbox Code Playgroud) 我曾经看过一个可以很UIActivityIndicatorView容易做到的图书馆,但我找不到它.有人知道或知道另一种做得好的方法UIActivityIndicatorView吗?类似的东西

我有两个问题与活动指示器:1.活动指示器没有显示在UIViewController上
我在.xib文件中添加了活动指示器.在按钮上单击它应该开始动画.当收到服务器的响应时,在进入下一页之前,它应该停止动画.我这样做如下:
activityIndicator.hidden = NO;
[activityIndicator performSelector:@selector(startAnimating) withObject:nil afterDelay:0.1];
[self.view bringSubviewToFront:activityIndicator];
....rest of code here....
activityIndicator.hidden = YES;
[activityIndicator stopAnimating];
Run Code Online (Sandbox Code Playgroud)
对于表格视图,我这样做,但在didselectrowatindexpath ...
对于tableview,我也尝试将活动视图添加到单元附件,但仍然没有显示
在这两种情况下,活动指标都没有出现.
请帮忙
谢谢
所以我有一个包含HTML内容的Web视图的视图.这是我显示它的代码:
NSURL *url = [NSURL URLWithString:urlWeb];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[vue loadRequest:request];
vue.scalesPageToFit = YES;
Run Code Online (Sandbox Code Playgroud)
这很好用.但是当然在显示HTML内容之前有一点延迟,我想在此时显示一个UIActivityIndicator.
我知道我必须使用:
[myActivityIndicator startAnimating];
[myActivityIndicator stopAnimating];
Run Code Online (Sandbox Code Playgroud)
我唯一想念的是如何知道HTML内容何时完全加载?
谢谢你的建议!
我正在玩iOS中的一些JSON解析,我想添加一个微调器,这很有效,但我无法阻止微调器,我想了解原因.
[spinner stopAnimating]在异步块中调用,我相信问题所在,也许是因为我不能在块中调整旋转器上的方法?我记录了微调器obj,输出是:
<UIActivityIndicatorView: 0x76905f0; frame = (150 230; 20 20); layer = <CALayer: 0x768ffb0>>
Run Code Online (Sandbox Code Playgroud)
也许有人可以让我理解如何在objective-c中处理这种异步方法.我是一个绝对的初学者.
代码:
- (void)viewDidLoad{
[super viewDidLoad];
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
spinner.center = CGPointMake(160, 240);
[self.view addSubview:spinner];
[spinner startAnimating];
dispatch_async(kBgQueue, ^{
NSData* data = [NSData dataWithContentsOfURL:
kLatestKivaLoansURL];
[self performSelectorOnMainThread:@selector(fetchedData:)
withObject:data waitUntilDone:YES];
NSLog(@"loans: %@", spinner);
[spinner stopAnimating];
});
}
Run Code Online (Sandbox Code Playgroud) 网页加载完成后,活动指示器未隐藏.这是我的
.h文件
@interface PropertyViewController : UIViewController{
IBOutlet UIWebView *propertyNexusHome;
IBOutlet UIActivityIndicatorView *wheel;
NSTimer *timer;
}
Run Code Online (Sandbox Code Playgroud)
.m文件
- (void)viewDidLoad
{
[super viewDidLoad];
[property loadRequest:[NSURLRequest requestWithURL:
[NSURL URLWithString:@"http://www.google.com"]]];
[property addSubview:wheel];
timer = [NSTimer scheduledTimerWithTimeInterval:(1.0/2.0)
target:self
selector:@selector(loading)
userInfo:nil
repeats:YES];
// Do any additional setup after loading the view, typically from a nib.
}
-(void)loading {
if (!property.loading)
[wheel stopAnimating];
else
[wheel startAnimating];
}
@end
Run Code Online (Sandbox Code Playgroud)
我不知道为什么它不会消失,如何在页面加载时停止旋转.
提前致谢.
我有一个带有表视图控制器的应用程序,其中用户选择US状态,调用Web服务并在目标表视图控制器中显示该状态的数据.由于Web服务可能需要一些时间才能完成,因此我需要一个活动指示器.由于不会显示临时数据,我需要同步处理.所以我的任务非常简单:启动活动指示器,调用Web服务,完成后,停止活动指示器.
我显然做错了,没有活动指示器显示.
以下是我的目标表视图控制器的viewDidAppear方法的代码:
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
[self.tableView bringSubviewToFront:spinner];
spinner.hidesWhenStopped = YES;
spinner.hidden = NO;
[spinner startAnimating];
stateGauges = [[GaugeList alloc] initWithStateIdentifier:stateIdentifier andType:nil];
[self.tableView reloadData];
[spinner stopAnimating];
}
Run Code Online (Sandbox Code Playgroud)
标题:
@property (strong, nonatomic) UIActivityIndicatorView *spinner;
Run Code Online (Sandbox Code Playgroud)
GaugeList是进行Web服务调用的对象.
有人能告诉我如何显示活动指示器视图吗?谢谢!
您好我正在尝试创建一个简单的空白html页面与旋转器在中心.例如在该图像中的东西.

我们正在离开MBProgressHUD,因为它在我们的应用程序中太麻烦了,并且没有阻止用户输入或提供取消按钮等功能.
那么,我试图在UIAlertController的中心实现Swipesight的如何显示活动指示器?,我遇到了指标的不正确定位:
objective-c
uiactivityindicatorview
ios
uialertcontroller
我有一个应用程序,用户可以从相机胶卷中选择一个图像,然后将该图像加载到一个UIImageView.但是,如果图像很大,则会出现延迟,直到所选图像实际出现在UIImageView(设置图像未执行,main thread因此UI不会被冻结).在设置图像之前,我想显示一个活动指示器,通知用户应用程序没有冻结,只是加载图像.但是,我不知道如何检测图像何时被设置UIImageView为隐藏活动指示器.我猜也许KVO可以在这里提供帮助,但我不确定如何正确实施它.
抱歉,这个菜鸟问题!:)