我在这里遇到了一些问题,我让用户将一些视频上传到服务器,但是我在管理用于说明其进度的视图时遇到一些困难我知道为什么这个问题正在发生的事情,我发现它周围的方式(在某种程度上)在这里我的问题在iPhone上运行另一个进程时管理视图
所以,如果一个人试图做一些代码,看起来像这样(在一个UIViewController
-(void)uploadMovie
{
UIActivityView indicator=new...
[self.view addSubview:indicator]
[uploader UploadMyMovie:data]
}
此代码不会工作,上传者将锁定控制器,并且不会让指示符及时显示在屏幕上,我发现等待几秒钟重新呼吁上传者的作品,但我采取了另一种方法。
该方法是为上传器启动一个新线程,并有一个协议,上传器对象通知UIViewController(或某个委托)何时开始上传,其进度以及何时完成上传。喜欢的东西
-(void)uploadMovie
{
UIActivityView indicator=new...
[self.view addSubview:indicator]
NSThread *thread=...
[thread start]
}
委托方法是这个样子
#pragma mark UploadProgressDelegate
-(void)didStartUploading
{
progressLabel= [[UILabel alloc] initWithFrame:CGRectMake(93, 240, 116, 32)];
ind= [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
ind.center=self.view.center;
[progressLabel setTextColor:[UIColor blackColor]];
[progressLabel setText:@"TEST"];
[self.view addSubview:progressLabel];
[self.view addSubview:ind];
[ind startAnimating];
[self.view bringSubviewToFront:progressLabel];
[ind setHidesWhenStopped:TRUE];
[self.view setUserInteractionEnabled:FALSE];
}
-(void)progressUpdate:(NSString*)progress
{
[progressLabel setText:progress];
}
-(void)didEndUploading;
{
[progressLabel removeFromSuperview];
[ind stopAnimating];
[ind removeFromSuperview];
[progressLabel release];
[ind release];
[self.view setUserInteractionEnabled:TRUE];
}
这个伟大的工程和指示器显示和一切,然后我决定让用户看到通过添加一个UILabel进展(反映在上面的代码),然而对于这个解决方案不起作用,标签不显示,当然也没有更新...
我想知道是否有人遇到这种情况,并已为它提出了解决方案?或者,如果你都不可能从上面为什么标签心不是显示代码见...
感谢
为什么有人标记这个人,他不知道从哪里j必须打这个电话,但我不得不打电话,谢谢你的帮助 – Daniel 2009-07-25 16:30:56
谢谢你的支持:-) – 2009-07-25 18:15:12