我有一个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];
}
}
}