سؤال

لقد قمت بتطبيق uiactivityIndicator يظهر في جزء من برنامجي ولكن ليس آخر. لديّ مؤشر النشاط يأتي أثناء تحميل جدول ، ومع ذلك ، أحاول أن أبدأ في بدء الرسوم مرة أخرى بعد النقر فوق الزر وينتظر إعادة تحميل الجدول. إعادة تحميل الجدول ، ولكن لا يوجد مؤشر. هنا هو الرمز.

- (void)viewWillAppear:(BOOL)animated {
    CGRect frame = CGRectMake (120.0, 185.0, 80, 80);
    activity = [[UIActivityIndicatorView alloc] initWithFrame: frame];
    activity.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;
    [activity startAnimating];

    [navigationUpdateFromDetail.window addSubview: activity];

    [super viewWillAppear:animated];
}

يأتي لهذا الجزء. ومع ذلك ، بالنسبة للجزء التالي ، لا يريد أن يبدو.

- (IBAction) btnGreaterTen_clicked :(id)sender {

    self.searchDistance = [NSNumber numberWithDouble : 10];

    CGRect frame = CGRectMake (120.0, 185.0, 80, 80);

    activity = [[UIActivityIndicatorView alloc] initWithFrame: frame];
    activity.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;

    [navigationUpdateFromDetail.window addSubview: activity];
    [activity startAnimating];


    NSLog(@" search value after change %@", [searchDistance description]);

    [self getSetDisplay];

    [activity stopAnimating];
}

يغير هذا الزر متغيرًا ويفترض أن يبدأ الرسوم المتحركة ، لكنه لا يفعل ذلك. لقد غيرت اللون للتأكد من أنه لم يكن مجرد مزج ، لذلك ليس الحل. حاولت إعادة إنشاء نفس الكائن ، لكن لم يحالفك الحظ. شكرا لكم مقدما.

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

المحلول

لن ينجح ذلك ، لأن الرسوم المتحركة ستظهر فقط عندما تكون حلقة التطبيق الرئيسية "تعمل". في التعليمات البرمجية الخاصة بك ، أنت تمنع الموضوع الرئيسي عن طريق الاتصال [Self GetSetDisplay].

يجب عليك تحميل بياناتك بشكل غير متزامن لجعل هذا العمل (في موضوع خلفية). ثم يمكنك الاتصال startAnimating, ، ابدأ موضوعك ، وعندما ينتهي الخيط ، أوقف الرسوم المتحركة.

نصائح أخرى

لقد كان هذا يزعجني على مر العصور ، ووجدت أنه عند استخدام وحدة تحكم عرض البحث ، اضطررت إلى إضافة مؤشر النشاط باعتباره نظرة فرعية على نتائج البحث لإظهاره. في جهاز ViewDidload ، وضعت ...

// create activity indicator
activityIndicator = [[UIActivityIndicatorView alloc]initWithFrame:CGRectMake(0.0f, 0.0f, 32.0f, 32.0f)];
[activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray];
[self.searchDisplayController.searchResultsTableView addSubview:activityIndicator];

عندما أرغب في البدء في الرسوم ، أضع ...

[activityIndicator setCenter:CGPointMake(self.searchDisplayController.searchResultsTableView.frame.size.width/2.0f, self.searchDisplayController.searchResultsTableView.frame.size.height/2.0f)];
[activityIndicator startAnimating];

أمل أن هذا يساعد شخصاما.

حاول إضافة

activity.hidden = NO;

فقط قبل

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