如何在从视图中删除所有CALayer时检查UIButton对象



我有一个reinit方法,可以从UIScrollView中删除所有现有的CALayer对象。这在我的所有CALayer和CATextLayer对象上都可以很好地工作,但我在这个视图中有一个UIButton对象,我希望不去管它。我的代码似乎影响了UIButton对象的层,使其处于意外状态(不再可见)。有没有一种方法可以检查层是否是UIButton对象的层属性,这样我就可以绕过删除?谢谢

- (void) reinit {
    for (CALayer *layer in [myScrollView.layer.sublayers copy]){
        [layer removeFromSuperlayer];
    }
}

我通过在将按钮添加到视图之前为按钮的层分配一个名称,然后检查该名称来解决这个问题:

[myButton.layer setName: @"ButtonLayer"];
- (void)reinit {
    for (CALayer *layer in [myScrollView.layer.sublayers copy]){
       if ([[layer name] isEqualToString:@"ButtonLayer"]) {
           NSLog(@"Button layer found.");
       else {
          [layer removeFromSuperlayer];
      } 
    }
}

最新更新