سؤال

كيف يمكنني إضافة دائرة سبينر uiactivityIndicatorView إلى Uibarbutton، بحيث عندما يقوم المستخدم بنابليات على أحد الأزرار الموجودة في شريط التنقل، يرون سبينر أثناء إجراء التحميل؟

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

المحلول

إذا كنت تحاول إظهار عجلة النشاط في زر شريط التنقل (على سبيل المثال، فقد يكون لديك زر تحديث في Navbar الخاص بك) - يمكنك إنشاء جديد UIBarButtonItem مع عرض مخصص يجري UIActivityIndicatorView:

ج موضوعية

uiBusy = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
uiBusy.hidesWhenStopped = YES;
[uiBusy startAnimating];
[self.navigationItem.rightBarButtonItem initWithCustomView:uiBusy];

سويفت

let uiBusy = UIActivityIndicatorView(activityIndicatorStyle: .White)
uiBusy.hidesWhenStopped = true
uiBusy.startAnimating()
self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: uiBusy)

هذا الكتابة فوق الخاص بك rightBarButtonItem مع عجلة الغزل. عندما تنتهي، فقط إعادة إنشاء rightBarButtonItem.

نصائح أخرى

activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
activityIndicator.hidesWhenStopped = YES;
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];

ضع ما يلي مطلوبا على الإطلاق:

[activityIndicator startAnimating];
[activityIndicator stopAnimating];

في الواقع لم يتم إضافة مؤشر النشاط كمشروع شريط الأدوات. إنها فرعية من الرأي الحالي.


    UIActivityIndicatorView *act = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
    [act setCenter:CGPointMake(20, 20)];
    [act startAnimating];
    [self.view addSubview:act];

تذكر أن تطلق عليه في -(void)dealloc.

استخدم هذه الأساليب

-(void)startAniatingActivityIndicator{
@try {
    activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
    activityIndicator.frame = CGRectMake(self.window.frame.size.width-30, 32.5, activityIndicator.bounds.size.width, activityIndicator.bounds.size.height);
    [self.window addSubview:activityIndicator];
    [activityIndicator startAnimating];
    [self.window bringSubviewToFront:activityIndicator];
}
@catch (NSException *exception) {

}
@finally {

}

}

-(void)stopAniatingActivityIndicator{
[activityIndicator stopAnimating];
[activityIndicator removeFromSuperview];
activityIndicator = nil;

}

UiactivityIndicatorView هو نوع من الرؤية. قم بتعيين إطارها ليكون ضمن الزر الخاص بك واستخدام -إضافة View لإضافتها إلى التسلسل الهرمي لعرض Uibarbutton.

أنا مبالغ فيها، لأن عليك أن تحاول أن تجعل من تناسب المساحة (ربما عن طريق التحجيم) والمركز ...

Pseudocode، لن أتحقق من ذلك في Xcode، ولكن يجب أن يعمل شيء مثل هذا:

UIActivityIndicatorView *act = [[UIActivityIndicatorView alloc] init];
act.frame = CGMakeRect(3,3,25,25);
[myBarButton addSubview:act];
[act release];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top