如何指定要删除的特定子视图?

时间:2013-07-03 07:39:34

标签: ios uibutton uilabel subview removeall

我试图通过此代码从按钮中删除UILabel子视图 但是此代码会删除按钮的所有子视图,甚至是当前图像。 我不明白我怎么能只指定UILabel从按钮中删除。

if (![[UIImage imageNamed:@"box1.png"] isEqual:button.currentImage]) {
     [button.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
}

2 个答案:

答案 0 :(得分:2)

案例1:您添加了标签。在这种情况下,设置它的标记属性并使用[button viewWithTag:yourLabelTag];

检索它

案例2:您想删除' titleLabel' UIButton的问题(尽管我无法想到它的原因)。只需[button.titleLabel removeFromSuperview];

案例3:您没有标签,没有指向标签的指针,并且您想删除添加到按钮的所有UILabel实例:

for(int i = 0 ; i < button.subviews.count ; i++) //you could use for(UIView *v in button.subviews) but you shouldn't change the array during this kind of enumeration.
{
   UIView *v = [button.subviews objectAtIndex:i];
   if([v isMemberOfClass:[UILabel class]])
   {
      [v removeFromSuperview];
      i--;
   }
}

希望这有帮助。

干杯!

答案 1 :(得分:0)

最佳方法是为视图设置tag值,并根据tag值删除视图。