2015-11-13 3 views
1

Я построил интерфейс с несколькими кнопками. Кнопки вытаскивают информацию из Интернета для их названия. Добавить UIActivityIndicator к каждой кнопке в окне следующим образом:Удалить видимость подзапроса индикатора из представления UIButton

- (void) addActivityIndicator { 
    UIButton * button; 

    for (int i = 1; i <= 10; i++){ 
     button = (UIButton *)[self viewWithTag:i]; 
     NSLog(@"Button: %i",i); 
     [button setTitle:@"" forState:UIControlStateNormal]; 
     button.enabled = NO; 

     UIActivityIndicatorView * buttonSpinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
     [buttonSpinner startAnimating]; 
     buttonSpinner.tag = i; 
     buttonSpinner.frame = button.bounds; 
     [button addSubview:buttonSpinner]; 
    } 

} 

Однако, я не могу показаться, чтобы получить доступ к отдельным показателям, чтобы удалить их.

[(UIButton *)[self viewWithTag:tag] setTitle:[NSString stringWithFormat:@"%@",[self addTitle:i]] forState:UIControlStateNormal]; 
[(UIButton *)[self viewWithTag:tag] setEnabled:YES]; 
[(UIButton *)[self viewWithTag:tag] [buttonSpinner stopAnimating]]; 

Любые мысли?

ответ

1
for (int i = 1; i <= 10; i++){ 
     button = (UIButton *)[self viewWithTag:i]; 
     NSLog(@"Button: %i",i); 
     [button setTitle:@"" forState:UIControlStateNormal]; 
     button.enabled = NO; 

     UIActivityIndicatorView * buttonSpinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
     [buttonSpinner startAnimating]; 
     buttonSpinner.tag = i*99; 
     buttonSpinner.frame = button.bounds; 
     [button addSubview:buttonSpinner]; 
    } 

Затем получить UIActivityIndicatorView

[(UIActivityIndicatorView *)[(UIButton *)[self viewWithTag:tag] viewWithTag:tag] stopAnimating]; 
+0

Да, я пытался, что и раньше, но получаю ошибку '[UIButton stopAnimating]: непризнанные селектор направлен instance' –

+0

Вы пытались как мой ответ именно? – anhtu

+0

Да. Я думаю, что проблема заключается в том, что тег кнопки и тег индикатора совпадают. –

-1

Может быть, вы можете попробовать перебором подвидов и удалить его?

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 

UIActivityIndicatorView *toRemove; 
for (UIView *view in button.subviews) 
{ 
    if ([view isKindOfClass:[UIActivityIndicatorView class]]) 
    { 
     toRemove = (UIActivityIndicatorView *)view; 
     break; 
    } 
} 
[toRemove removeFromSuperview]; 
Смежные вопросы