سؤال

لديّ تطبيق يستخدم UitableViews وجلب البيانات من خادم. أحاول وضع uiActivityIndicatorView على uitable uitable ، لذلك يدور أثناء تحميل uitable uitable. لديّ UiActivityIndicatorView جميع المتواصل من خلال Builder Interface ، إلخ.

-(void)spinTheSpinner {
    NSLog(@"Spin The Spinner");
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    [spinner startAnimating];
    [NSThread sleepForTimeInterval:9];
    [self performSelectorOnMainThread:@selector(doneSpinning) withObject:nil waitUntilDone:NO];
    [pool release]; 
}

-(void)doneSpinning {
    NSLog(@"done spinning");
    [spinner stopAnimating];
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [NSThread detachNewThreadSelector:@selector(spinTheSpinner) toTarget:self withObject:nil];

    NSMutableString *tempText = [[NSMutableString alloc] initWithString:[categoryNumber objectAtIndex:indexPath.row]];
    Threads *viewController = [[Threads alloc] initWithNibName:@"newTable" bundle:nil tagval:tempText SessionID:PHPSESSID];
    [self.navigationController pushViewController:viewController animated:YES];
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    [viewController release];                   
}

لذلك ، عندما أدفع الطفل uitableview على الشاشة ، يجلس UiActivityIndicatorView (Spinner) هناك فقط على UnitableView. إذا ذهبت إلى الطفل UitableView ثم عدت بسرعة إلى عرض الوالدين ، يمكنني التقاط UiActivitIndicatorView في فعل الغزل. تظهر NSLogs في الأوقات الصحيحة - عندما انقر فوق الخلية لأول مرة في uitable uitable ، تظهر "الدوران الدوار" في السجل. بعد 9 ثوان ، حصلت على "الغزل" في السجل ، لكن الدوار لا يدور أبدًا إلا إذا عدت إلى الوالدين UableView في الوقت المناسب.

أفكار لماذا هذا لا يعمل بشكل صحيح؟

هل كانت مفيدة؟

المحلول

ربما يكون SleepfortimeInterval يحجب الرسوم المتحركة.

حاول إزالة sleepfortimeInterval واستبدال perfortseSelectorOnMainThread performSelector:withObject:afterDelay:.

نصائح أخرى

دع واجهة المستخدم يعرضها خارج الموضوع:

[NSObject dispatchUI:^{
     [spinner startAnimating];
}];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top