【问题标题】:How to set all the programmatically added ImageViews to nil?如何将所有以编程方式添加的 ImageViews 设置为零?
【发布时间】:2014-01-23 05:04:21
【问题描述】:

每次单击创建按钮时,都会创建 4 行图像。我正在将这种技术用于游戏策划者。当您单击清除按钮时,每个图像视图都必须设置为零,但现在只有最后创建的 4 个图像视图设置为零。任何帮助将不胜感激!

- (IBAction)create {

    _imgView1 = [[UIImageView alloc] initWithFrame:CGRectMake(134, y, 30, 30)];
    _imgView2 = [[UIImageView alloc] initWithFrame:CGRectMake(170, y, 30, 30)];
    _imgView3 = [[UIImageView alloc] initWithFrame:CGRectMake(206, y, 30, 30)];
    _imgView4 = [[UIImageView alloc] initWithFrame:CGRectMake(241, y, 30, 30)];

    _imgView1.image = [UIImage imageNamed:[textfield_code objectAtIndex:0]];
    _imgView2.image = [UIImage imageNamed:[textfield_code objectAtIndex:1]];
    _imgView3.image = [UIImage imageNamed:[textfield_code objectAtIndex:2]];
    _imgView4.image = [UIImage imageNamed:[textfield_code objectAtIndex:3]];

    [self.view addSubview:_imgView1];
    [self.view addSubview:_imgView2];
    [self.view addSubview:_imgView3];
    [self.view addSubview:_imgView4];


    y += 41;
}

- (IBAction)clear {
    [_imgView1 setImage:nil];
    [_imgView2 setImage:nil];
    [_imgView3 setImage:nil];
    [_imgView4 setImage:nil];
}

【问题讨论】:

    标签: iphone cocoa-touch uiimageview


    【解决方案1】:

    枚举视图的子视图

    for(UIImageView *v in self.view.subviews) {
        if([v isKindOfClass:[UIImageView class]) {
           [v setImage:nil];
        }
    }
    

    但是这是“危险的”,因为它会删除任何图像视图。 最好也使用标签

    例如

    定义为#define MyTag 100

    以及何时创建v.tag = MyTag

    然后在循环中检查它if(v.tag == MyTag)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      • 2018-10-14
      • 1970-01-01
      • 2011-05-02
      相关资源
      最近更新 更多