0

我有一个 UIView,其中包含 UILabels、UISliders、UITextboxes 等。我只想对滑块执行操作。这是怎么做到的?目前,我有

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 语句的末尾添加,就像我在实际代码中一样。我在我的代码中删除了它,现在我得到了我预期的行为。

4

2 回答 2

0

也许您应该尝试使用isMemberOfClass而不是 isKindOfClass。

于 2012-11-15T16:24:28.400 回答
0

原来我有一个错字。在我的 if 语句的;末尾基本上使它就像我根本没有if在那里一样,这就是为什么一切都从我的视野中删除的原因。删除;使我的问题中的代码按预期工作。

于 2012-11-16T16:51:14.710 回答