首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIProgressBar动画不平滑

UIProgressBar动画不平滑
EN

Stack Overflow用户
提问于 2014-06-18 17:27:19
回答 1查看 432关注 0票数 0

我有一个在HTML Parsing for循环中更新的UIProgressBar。但它的更新并不顺利。我希望它显示出平稳的增长。我试着把async_dispatch放进去,但是它根本没有更新。下面是我的代码:

代码语言:javascript
复制
- (void)viewDidLoad
{
    [super viewDidLoad];

    [self performSelectorOnMainThread:@selector(getWeeklyProgram) withObject:nil waitUntilDone:NO];
}

-(void)getWeeklyProgram 
{
   NSURL *programURL = [NSURL URLWithString:@"http://www.mostlifeclub.com/studyo-programlari/"];
   NSData *programHtmlData = [NSData dataWithContentsOfURL:programURL];

   TFHpple *programHTMLParser = [TFHpple hppleWithHTMLData:programHtmlData];
   NSString *activitiewXpathQueryString = @"//div[@class='wpb_row vc_row-fluid prk_full_width prk_section parallaxed']/div[@class='prk_inner_block columns centered']/div[@class='vc_span12 wpb_column column_container']/div[@class='wpb_wrapper']/div[@class='wpb_tabs wpb_content_element']//div[@class='wpb_wrapper wpb_tour_tabs_wrapper ui-tabs vc_clearfix']/div[@class='wpb_tab ui-tabs-panel wpb_ui-tabs-hide vc_clearfix']";
   NSArray *activityNodes = [programHTMLParser searchWithXPathQuery:activitiewXpathQueryString];
   NSMutableArray *activities = [[NSMutableArray alloc] init];

   //for each node
   for (TFHppleElement *element in activityNodes)
   {
        currentProgressCount += 1;

        @try
        {
            //Here I want to increase ProgressBar
            [self increaseProgress:currentProgressCount :activityNodes.count];

            }
         @catch(NSException* ex)
         {

         }
    }
}


-(void)increaseProgress:(int)currentLine:(int)totalLines {

    progressView.progress = (CGFloat)currentLine / (CGFloat)totalLines;
    if(progressView.progress >= 1.0f)
    {
        NSLog(@"bitti");
    }
}
EN

回答 1

Stack Overflow用户

发布于 2014-06-18 19:34:29

在另一个线程中运行For循环和时间密集型内容,并在主线程中更新UI:

代码语言:javascript
复制
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
   // Time Intensive Code
   dispatch_sync(dispatch_get_main_queue(), ^{
       // Update UI
   });
});

您可能需要将dispatch_sync...放在for循环中以更新UI

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24281873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档