我有nsmutablearray,其中我保存了一些字符意味着字母表现在我想要的是什么 在屏幕上将这些对象显示为子视图。我很容易做到这一点。他们通过循环这样做..我逐个访问数组对象,我可以将其添加为子视图,但现在无法从超级视图中删除这些。 我想删除这些标签。我怎么能这样做?
UILabel *myLabel;
UIImageView *image;
for (int j = 0; j<[intValues count];j++) {
image = [allGridImages objectAtIndex:j];
image.userInteractionEnabled=NO;
image.multipleTouchEnabled=NO;
image.image= [UIImage imageNamed:@"box-1.png"];
title = [allGridBoxesTitle objectAtIndex:j];
myLabel = [[UILabel alloc] initWithFrame:CGRectMake(15, 1, 45, 45)];
myLabel.text = [allGridBoxesTitle objectAtIndex:j];
myLabel.textColor = [UIColor grayColor];
myLabel.font = [UIFont boldSystemFontOfSize:26.0f];
myLabel.backgroundColor = [UIColor clearColor];
[image addSubview:myLabel];
答案 0 :(得分:1)
试试这个方法
- (void)removeAllLabels
{
for (UIView *view in self.view.subviews)
{
if ([view isKindOfClass:[UILabel class]])
{
[view removeFromSuperview];
}
}
}
答案 1 :(得分:0)
您可以在添加新标签之前执行此操作:
[image.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
这将指示任何子视图自行删除。
但是,这取决于UIImageView
在当前版本的iOS中没有任何子视图这一事实,这可能并非总是如此。最好实际跟踪这些标签,并在完成这些标签后专门删除它们,或者甚至重复使用它们,而不是每次都重新制作它们。