سؤال

أحاول الحصول على UiactivityIndicatorView للعمل داخل uibuttonbaritem باستخدام التعليمات البرمجية التالية:

- (void)showActivityIndicator
{
    UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];
    [activityIndicator startAnimating];

    UIBarButtonItem *activityBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];
    [activityIndicator release];

    self.navigationItem.rightBarButtonItem = activityBarButtonItem;
    [activityBarButtonItem release];
}

إنه يعمل على النقطة التي يتم عرض مؤشر النشاط، لكنها ليست داخل شريط زر.

هل لدى أي شخص أي أفكار حول ما أفعل الخطأ هنا؟

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

المحلول

هذا ما فعلته للحصول على مؤشر نشاط لتظهر عندما أردت ذلك على الجانب الأيسر من شريط الأدوات:

activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0.0, 0.0, 25.0, 25.0)];
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;
activityIndicator.hidesWhenStopped = YES;

UIBarButtonItem *btnActivity = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];
NSMutableArray *tItems = [self.toolbar.items mutableCopy];
[tItems insertObject:btnActivity atIndex:0];
self.toolbar.items = tItems;
[tItems release];

بعد ذلك، بالإضافة إلى التعليمات البرمجية الخاصة بي عندما أرغب في إظهار مؤشر النشاط، أستخدمه ببساطة بالطريقة العادية:

[activityIndicator startAnimating];

وعندما لا أريد أن أراه بعد الآن:

[activityIndicator stopAnimating];

نصائح أخرى

لكنه ليس داخل شريط زر

و اين هو؟

ربما يكون الإطار الذي تحدده غير صحيح؟ هل حاولت CGRectZero أو شيء عشوائي (على سبيل المثال CGRectMake(40,60,20,20)) هل لديها أي تأثير على موقف المؤشر؟

هل حاولت تحديد width خاصية البند؟

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