从 UIButton 视图中删除 Activity Indicator 子视图
Remove Activity Indicator subview from UIButton view
我构建了一个带有多个按钮的界面。这些按钮从互联网上提取信息作为他们的标题。我将 UIActivityIndicator 添加到视图中的每个按钮,如下所示:
- (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]];
有什么想法吗?
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];
也许您可以尝试遍历子视图并将其删除?
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
UIActivityIndicatorView *toRemove;
for (UIView *view in button.subviews)
{
if ([view isKindOfClass:[UIActivityIndicatorView class]])
{
toRemove = (UIActivityIndicatorView *)view;
break;
}
}
[toRemove removeFromSuperview];
我构建了一个带有多个按钮的界面。这些按钮从互联网上提取信息作为他们的标题。我将 UIActivityIndicator 添加到视图中的每个按钮,如下所示:
- (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]];
有什么想法吗?
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];
也许您可以尝试遍历子视图并将其删除?
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
UIActivityIndicatorView *toRemove;
for (UIView *view in button.subviews)
{
if ([view isKindOfClass:[UIActivityIndicatorView class]])
{
toRemove = (UIActivityIndicatorView *)view;
break;
}
}
[toRemove removeFromSuperview];