Ios 从UIButton视图中删除“活动指示器”子视图
我用几个按钮构建了一个界面。这些按钮从互联网上获取标题信息。我向视图中的每个按钮添加UIActivityIndicator,如下所示:Ios 从UIButton视图中删除“活动指示器”子视图,ios,objective-c,uiview,uibutton,uiactivityindicatorview,Ios,Objective C,Uiview,Uibutton,Uiactivityindicatorview,我用几个按钮构建了一个界面。这些按钮从互联网上获取标题信息。我向视图中的每个按钮添加UIActivityIndicator,如下所示: - (void) addActivityIndicator { UIButton * button; for (int i = 1; i <= 10; i++){ button = (UIButton *)[self viewWithTag:i]; NSLog(@"Button: %i",i);
- (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];
}
}
有什么想法吗?也许您可以尝试迭代子视图并将其删除
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];
}
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
UIActivityIndicatorView *toRemove;
for (UIView *view in button.subviews)
{
if ([view isKindOfClass:[UIActivityIndicatorView class]])
{
toRemove = (UIActivityIndicatorView *)view;
break;
}
}
[toRemove removeFromSuperview];
也许您可以尝试遍历子视图并删除它
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
UIActivityIndicatorView *toRemove;
for (UIView *view in button.subviews)
{
if ([view isKindOfClass:[UIActivityIndicatorView class]])
{
toRemove = (UIActivityIndicatorView *)view;
break;
}
}
[toRemove removeFromSuperview];
是的,我以前试过,但得到错误
[UIButton stop animating]:无法识别的选择器发送到实例
是。我认为存在的问题是按钮标签和指示器标签是相同的。我不这么认为,因为它们是相同的。您是否成功更改了按钮的标题?我发现,如果UIButtons的标记和UIActivityIndicatorView的标记相同,则您的方法将失败。但是,如果更改指示器视图的标记(示例标记*99),则您的方法工作正常。@@@!。无论如何,问题已经解决了。太奇怪了。是的,我以前试过,但得到错误[UIButton stop animating]:无法识别的选择器发送到实例
是。我认为存在的问题是按钮标签和指示器标签是相同的。我不这么认为,因为它们是相同的。您是否成功更改了按钮的标题?我发现,如果UIButtons的标记和UIActivityIndicatorView的标记相同,则您的方法将失败。但是,如果更改指示器视图的标记(示例标记*99),则您的方法工作正常。@@@!。无论如何,问题已经解决了。真奇怪。
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
UIActivityIndicatorView *toRemove;
for (UIView *view in button.subviews)
{
if ([view isKindOfClass:[UIActivityIndicatorView class]])
{
toRemove = (UIActivityIndicatorView *)view;
break;
}
}
[toRemove removeFromSuperview];