我有一个UIView,其中包含UILabel,UISliders,UITextbox等。我想只对滑块执行操作。这是怎么做到的?目前,我有
int count = 0;
for (UIView *subview in [myView subviews])
{
if ([subview isKindOfClass:[UISlider class]]);
{
[subview removeFromSuperview];
NSLog(@"Class for object removed is %@",[subview class]);
count ++;
}
//else{do nothing - subview isn't a slider, so I don't care about it}
}
NSLog(@"count = %d",count);
当我运行此代码时,一切都会受到影响(滑块,以及标签,文本框和其他所有内容)。从我从阅读其他帖子中收集的内容来看,使用带有数组的isKindOfClass有点不好意思,但我认为这只是在尝试isKindOfClass:[NSArray class]
时。或者我错了吗?如果不允许在isKindOfClass
循环内嵌套for
,我该如何对我视图中的某些项执行操作?
编辑:为此实现添加了整个代码。计数已关闭,NSLog告诉我正在删除大量UILabel。在这次运行之后,我的观点完全被清空了。
编辑2:在if语句的末尾添加;
,就像我在实际代码中一样。我在我的代码中删除了它,现在我得到了我期望的行为。
答案 0 :(得分:0)
也许您应该尝试使用 isMemberOfClass 而不是isKindOfClass。
答案 1 :(得分:0)
原来我输错了。我的if语句末尾的;
基本上就像我在那里没有if
一样,这就是为什么所有内容都从我的视图中删除了。删除;
使我的问题中的代码按预期工作。