我试图通过此代码从按钮中删除UILabel子视图 但是此代码会删除按钮的所有子视图,甚至是当前图像。 我不明白我怎么能只指定UILabel从按钮中删除。
if (![[UIImage imageNamed:@"box1.png"] isEqual:button.currentImage]) {
[button.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
}
答案 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
值删除视图。