我有一个UIImage从URL加载,我想UIActivityIndicatorView在图像加载时显示动画.有人可以帮帮我吗?
谢谢大家.
嗨,大家好!
目前正在发现cocos2d框架.
现在我正在尝试在cocos2d项目中使用UIKit的东西.
我在做什么:我添加了方法:
-(void)activityIndicatorRun {
spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
spinner.color = [UIColor orangeColor];
spinner.hidesWhenStopped = YES;
[spinner startAnimating];
[self scheduleOnce:@selector(activityIndicatorStop) delay:5.0f];
}
Run Code Online (Sandbox Code Playgroud)
和
-(void)activityIndicatorStop {
[spinner stopAnimating];
}
Run Code Online (Sandbox Code Playgroud)
在我将这个代码添加到我的init方法之后:
[self scheduleOnce:@selector(activityIndicatorRun) delay:54];
Run Code Online (Sandbox Code Playgroud)
我认为我需要在我的视图中添加子视图.但我不确定你如何做到这一点,以及在哪里.
问题:任何人都可以帮助我吗?
提前致谢!
objective-c uikit cocos2d-iphone uiactivityindicatorview ios
我需要使用MPMoviePlayerController在我的UIViewcontroller中播放视频.因此,在播放视频之前,我需要在视频缓冲之前显示活动指标视图.视频开始播放后,我需要删除活动指示器.我无法在视频开始播放后立即了解如何获得通知.对此提出任何建议都会有很大帮助.谢谢.
由于标题表明我的活动指标处于状态不会停止动画.
我在这里做了一些研究,不知道我做错了什么......
在我的Apps委托中,我有
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIApplication* app = [UIApplication sharedApplication];
app.networkActivityIndicatorVisible = NO;
Run Code Online (Sandbox Code Playgroud)
在我的视图controller.m中,我想调用活动指示器
NSString *web = @"http://google.com";
NSURL *url = [NSURL URLWithString:web];
NSURLRequest *requestUrl = [NSURLRequest requestWithURL:url];
[toweb loadRequest:requestUrl];
UIApplication* app = [UIApplication sharedApplication];
app.networkActivityIndicatorVisible = YES; <<<<<<<<<<<<<<<<<<<<<
Run Code Online (Sandbox Code Playgroud)
现在继续问题我试图再次隐藏它:
- (void)DidFinishLoad:(UIWebView *)toweb{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
}
Run Code Online (Sandbox Code Playgroud)
任何建议表示赞赏
我有一个UIActivityIndicator应该循环,直到加载PDF文件.
我无法理解为什么,但指标在加载PDF之前消失.我无法理解PDF文件是否太大(1,4 MB),如果我的应用程序冻结,或者我在代码中写错了
-(void)startTheProcess {
act = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
//coordinate act
[act setCenter:CGPointMake(320 / 2, 440 / 2)];
self.act.hidden = FALSE;
[self.view addSubview:act];
[act startAnimating];
[UIApplication sharedApplication].networkActivityIndicatorVisible = TRUE;
[NSThread detachNewThreadSelector:@selector(creaVista) toTarget:self withObject:nil];
}
- (void) creaVista{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSURL *url = [NSURL URLWithString:@"http://www.something.com/file.pdf"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[pdfView loadRequest:request];
[pdfView setScalesPageToFit:YES];
[self performSelectorOnMainThread:@selector(processDone) withObject:nil waitUntilDone:NO];
[pool release];
}
-(void)processDone {
[act stopAnimating];
[UIApplication sharedApplication].networkActivityIndicatorVisible = FALSE;
}
Run Code Online (Sandbox Code Playgroud)
如果我调试它,我可以很容易地看到调试器快速进入[act stopAnimating]然后停止,但文件尚未加载:几秒钟后出现PDF.
你有任何提示吗?我是一个菜鸟,我想我做了一些愚蠢的错误......谢谢
我想在搜索栏的文本字段右侧添加一个UIActivityIndicator.因此,搜索栏将在从DB中获取数据时继续显示加载状态.
对此有何想法?
我正在尝试在我的UITableView中的某些单元格中添加一个活动指示器.我在方法didSelectRowAtIndexpath中成功地使用了
CGRect CellFrame = CGRectMake(260, 10, 20, 20);
actindicator = [[UIActivityIndicatorView alloc]initWithFrame:CellFrame];
[actindicator setHidesWhenStopped:NO];
[actindicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray];
actindicator.tag =1;
[[cell contentView] addSubview:actindicator];
Run Code Online (Sandbox Code Playgroud)
我需要从另一种方法控制这些多个活动指标.我认为一个属性是一种方法来做到这一点,但每次初始化一个新的actIndicator实例,我将参考文献除了活动指示符的"最新"初始化之外的所有内容,因此意味着我只能控制一个.
我需要做什么(如果可能的话?)来保持对所有actIndicators的引用,这样我就可以开始动画所有这些了吗?或者我可以以某种方式使用actindicator.tag来控制某种形式的引用.
非常感谢任何帮助.
编辑:(来自答案)访问tableView中标记为1的所有活动实例指标(仅限可见单元格)可以使用下面的另一种方法:
for (UITableViewCell *cell in [self.tableView visibleCells]) {
UIActivityIndicatorView *actView = (UIActivityIndicatorView *)[cell.contentView
viewWithTag:1];
[actView startAnimating];
activityFlag = 1;
}
Run Code Online (Sandbox Code Playgroud)
上述方法将遍历所有可见单元格并开始为活动指示器设置动画.
为了处理滚动的tableview的情况,我使用下面的方法重新设置指标的动画,该方法位于cellForRowAtIndexPath中.cellStateKey只是指示单元格旁边是否有复选标记,如果它有复选标记并且我的activityflag(正在进行异步网络服务器调用)已设置..那我想继续设置动画.(技术上重新启动动画,作为滚动tableview停止它)
if ([[rowData objectForKey:cellStateKey] boolValue]) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
if(cell.accessoryType == UITableViewCellAccessoryCheckmark &&activityFlag ==1){
for (UIView *sub in [[cell contentView] subviews]) {
if (sub.tag == 1) {
UIActivityIndicatorView *acView = (UIActivityIndicatorView *)
[cell.contentView viewWithTag:1]; …Run Code Online (Sandbox Code Playgroud) 在用户按下我的收集单元格中的按钮后,我正在设置ActivityIndicator,同时我等待网络响应.下面的代码由自定义单元格的每个实例调用(在调试器中确认),但活动指示器仅在第一个单元格中单击按钮时显示,或者在重用第一个单元格的单元格中单击时显示.如果我在第一个单元格之前单击另一个单元格中的按钮并不重要.
customCollectionViewCell.m
@interface customCollectionViewCell(){
UIActivityIndicatorView *activityIndicator;
}
@implementation cutomCollectionViewCell
- (void) choiceClicked:(id)sender{
dispatch_async(dispatch_get_main_queue(), ^{
activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
actvityIndicator.center = self.center;
[self.contentView addSubview:activityIndicator];
[actvityIndicator startAnimating];
});
async - network stuff
}
Run Code Online (Sandbox Code Playgroud)
我正在确保准备重用,我正在从superview中删除指标并设置为nil.
我也尝试过只创建指标,如果它不存在并开始动画 - 行为仍然没有变化.
编辑:如果仅从主线程调用动画并且其他调用明确地是默认队列的一部分也无关紧要.
if (activityIndicator == nil){
activityIndicator = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
activityIndicator.center = self.center;
[self.contentView addSubview:activityIndicator];
}
dispatch_async(dispatch_get_main_queue(), ^{
[activityIndicator startAnimating];
});
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
network call
});
Run Code Online (Sandbox Code Playgroud) uiactivityindicatorview ios uicollectionview uicollectionviewcell
在方法viewDidLoad中我初始化了一个ActivityIndicatorView.然后,在下面的方法中,我发送了活动指示符来启动.当我启动应用程序并运行if语句时,活动指示器会启动,但是当执行调度队列中的操作时,activityIndicator不会停止.这里的方法:
-(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
if([indexPath row] == [_myArray count]-2){
[_activityIndicator startAnimating];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
//Here I perform some operations
[self.tableView reloadData];
[_activityIndicator stopAnimating];
});
}
}
Run Code Online (Sandbox Code Playgroud)
我希望在调度队列中执行操作后停止活动指示器!
我有一个UITableView从Parse.com获取它的数据.虽然它正在这样做,我想在桌子上方显示一个活动指示器.我的代码是:
UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
indicator.center=self.view.center;
[self.view addSubview:indicator];
[indicator startAnimating];
Run Code Online (Sandbox Code Playgroud)
然而,它不是很重要:

抱歉,这张照片很棒!我尝试将指标添加到表superView,它没有什么区别.这一切都是菜鸟的一点点.有人可以给我一些指示我可能做错的事吗?
ios ×7
objective-c ×4
iphone ×3
xcode ×3
uitableview ×2
pdf ×1
uiimage ×1
uikit ×1
uisearchbar ×1
uiwebview ×1
url ×1