سؤال

أحاول إدارة مؤشر النشاط من مندوب التطبيق الخاص بي ، وبهذه الطريقة ، يمكن لأي من آرائي رفع المؤشر. لذا ، أقوم بإضافتها كقصة فرعية إلى "نافذة" وابدأ/توقف على النحو التالي:

- (void)didStartActivity
{
    if( activityIndicator == nil ) {
        activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
        activityIndicator.hidesWhenStopped = YES;
        activityIndicator.center = window.center;
        activityIndicator.transform = CGAffineTransformScale(CGAffineTransformIdentity, 6.0, 6.0);
    }
    NSLog(@"%s: starting the activityIndicator", __FUNCTION__);
    [window addSubview:activityIndicator];
    [activityIndicator startAnimating];
}

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

- (void)didStopActivity
{
    NSLog(@"%s: stopping the activityIndicator", __FUNCTION__);
    [activityIndicator stopAnimating];
    [activityIndicator removeFromSuperview];
}
هل كانت مفيدة؟

المحلول 3

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

سأمنح كل من Eimantas الإجابة لأن فكرة التصحيح كانت مفيدة في حل.

نصائح أخرى

هل تحاول القيام بذلك من موضوع خلفية؟ سيكون الاختبار السهل والرصيد هو إضافة:

NSLog(@"thread: %@", [NSThread currentThread]);

تحقق مما إذا كان الخاص بك activityIndicator ليس nil:

NSLog(@"activityIndicator: %@", activityIndicator);

إذا كان السجل الخاص بك لا شيء ، فقم بذلك:

في ".h" إعلان:

__strong UIActivityIndicatorView *activityIndicator

__strong تجنب القوس ثم يمكنك إزالة وإيقاف ActivityIndicator.

[activityIndicator stopAnimating];
[activityIndicator removeFromSuperview];

إذا كنت تضيفها إلى مراقبة الإشراف أكثر من مرة لن تعمل.

حاول وضع

[superView addSubview:activityIndicator];

داخل ال

if( activityIndicator == nil ) {

شرط

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