replaceSublayer示例

Joh*_*ith 1 iphone cocoa-touch core-animation uikit

我有以下代码,我似乎无法让它工作.

首先,我创建一个带有图层的视图.

UIView *view = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)] autorelease];
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = view.bounds;
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor blackColor] CGColor], (id)[[UIColor whiteColor] CGColor], nil];
[view.layer insertSublayer:gradient atIndex:0];
Run Code Online (Sandbox Code Playgroud)

接下来我需要替换该层.我尝试了以下内容,它失败了,因为我不知道如何访问该层0.此时我在程序的不同部分,所以我不能只调用渐变.我需要以某种方式从视图中解脱出来.

[view.layer replaceSublayer:0 with:newgradient];
Run Code Online (Sandbox Code Playgroud)

显然0应该是旧图层,但我不知道如何访问它.

谢谢.

Gre*_*reg 7

我想你应该可以使用这个:

[view.layer replaceSublayer:[[view.layer sublayers] objectAtIndex:0]
            with:newGradient];
Run Code Online (Sandbox Code Playgroud)

我离开了我的Xcode开发环境,但此刻无法测试.