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

时间:2015-11-02 23:00:33

标签: ios objective-c uibutton calayer

我有一个reinit方法,可以从UIScrollView中删除所有现有的CALayer对象。这适用于我的所有CALayer和CATextLayer对象,但我在此视图中有一个UIButton对象,我希望单独留下。看来我的代码正在影响UIButton对象的层,使其处于非预期状态(不再可见)。有没有办法我可以检查一个图层是否是我的UIButton对象的图层属性,以便我可以绕过删除?感谢。

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

1 个答案:

答案 0 :(得分:0)

我通过在将按钮的名称添加到视图之前为按钮的图层指定名称来解决此问题,然后检查该名称:

[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];
      } 
    }
}