我很难删除层的所有子层.目前我是手动操作的,但这会带来不必要的混乱.我在谷歌上找到了很多关于这个的话题,但没有答案.

我试着这样做:

for(CALayer *layer in rootLayer.sublayers)
{
    [layer removeFromSublayer];
}

但没用.

此外,我还试图克隆根层.将子层划分为单独的NSArray,但结果是相同的.

有什么 idea 吗?

编辑:

I thought it works now, but I was wrong. It works good with CALayers, but it doesn't work with CATextLayers. 有什么 idea 吗?

推荐答案

从层中删除所有子层的最简单方法是将子层属性设置为nil:

rootLayer.sublayers = nil;

Objective-c相关问答推荐

Objective C 中的多个委托

MKMapView zoom 到 viewDidLoad 上的用户位置?

Xcode 是否支持区域?

如何在旋转时定义 CollectionView 的大小

改变 RGB colored颜色 的色调

在 Xcode 中为无法识别的 Select 器创建断点

如何获取 AppIcon 的 UIImage?

dispatch_semaphore_dispose 上的 EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)

参考代码中的内部版本号或版本号

从 UIScrollView 中删除所有子视图?

奇怪的错误 NSAssert

带有块的 Objective-C 延迟动作

如何从设置屏幕打开位置服务屏幕?

100% 不透明度 UILabel 超过 50% 不透明度背景(UIView?)

NSMutableArray addObject 不起作用

iOS 7 中的 UITextView 链接检测

iPhone - dequeueReusableCellWithIdentifier 用法

如何阻止 NSNotification 中的观察者调用两次?

使用 Objective-C 发布多部分/表单数据

如何在对象内使用 objc_setAssociatedObject/objc_getAssociatedObject?