ios – 如何在UIProgressView中设置进度

ios – 如何在UIProgressView中设置进度,第1张

概述我在计算UIProgressView的进度时遇到问题.我的浮动值对进度没有影响.我尝试手动设置进度它工作正常,但如果我尝试计算它不起作用. 这是我的代码: - (void) initProgressbar { self.progressView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDe 我在计算UIProgressVIEw的进度时遇到问题.我的浮动值对进度没有影响.我尝试手动设置进度它工作正常,但如果我尝试计算它不起作用.

这是我的代码:

- (voID) initProgressbar {   self.progressVIEw = [[UIProgressVIEw alloc] initWithProgressVIEwStyle:UIProgressVIEwStyleDefault];   [self.progressVIEw setFrame:CGRectMake(0,SCREEN_WIDTH / 2,10)];   self.progressVIEw.center = CGPointMake(SCREEN_WIDTH - 110,SCREEN_HEIGHT - 25);   self.progressVIEw.progress = 0.0;   [self.vIEw addSubvIEw:self.progressVIEw];}

nbElementsSync和nbElementsToSync是全局int属性,nbElementsSync在调用updateProgress方法之前通过循环递增.

MyController.h

@interface MyController : UIVIEwController {   Nsstring *Json;   int nbElementsToSync;   int nbElementsSync;}@property (nonatomic,strong) UIProgressVIEw *progressVIEw;

MyController.m

nbElementsSync = 0; // Nb elements synchronizednbElementsToSync = [[Json valueForKey:@"count"] intValue]; // Nb elements to synchronizefor (Nsstring* result in results) {    nbElementsSync++;    [self updateProgress];}

这是我设置进度的方法:

- (voID) updateProgress {   [self.progressVIEw setProgress:((float)nbElementsSync / nbElementsToSync)];   NSLog(@"percent : %f",((float)nbElementsSync / nbElementsToSync));}

我的NSLog的结果:

percent : 0.003937percent : 0.007874percent : 0.011811percent : 0.015748percent : 0.019685percent : 0.023622...

有什么想法解决它吗?提前致谢.

解决方法 您是否尝试在后台进程中执行循环,而不是阻止UI更新:

MyController.m

在需要的地方拨打电话:

[self performSelectorInBackground:@selector(syncInBackground) withObject:nil];

然后

- (voID)syncInBackground{    int nbElementsSync = 0; // Nb elements synchronized    int nbElementsToSync = [[Json valueForKey:@"count"] intValue]; // Nb elements to synchronize    for (Nsstring* result in results) {        nbElementsSync++;        float percent = (float)nbElementsSync / nbElementsToSync;        [self performSelectorOnMainThread:@selector(updateProgress:) withObject:[NSNumber numberWithfloat:percent] waitUntilDone:NO];    }   }- (voID) updateProgress:(NSNumber *)percent {    [self.progressVIEw setProgress:percent.floatValue];}
总结

以上是内存溢出为你收集整理的ios – 如何在UIProgressView中设置进度全部内容,希望文章能够帮你解决ios – 如何在UIProgressView中设置进度所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1044785.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-24
下一篇2022-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存