을 사용하여 그래디언트를 만들려면 this answer을 따르고 있습니다. 키 명령은대체 CALayer
[view.layer insertSublayer:gradient atIndex:0];
내 문제는 내가 정기적으로 그라데이션을 업데이트 할 것입니다. 위의 코드를 반복적으로 호출하면 이전 그라디언트 아래에 새로운 그라디언트가 배치되므로 아무 것도 발생하지 않습니다. this answer을 참조하십시오.
내 질문은 : 어떻게 하나가 하위 레이어를 다른 것으로 바꿉니 까? 아마도 replaceSublayer:with:
으로 전화해야합니다. 하지만 이렇게하려면 이전 그라디언트에 대한 참조가 필요합니다. 이것을 얻기위한 역동적 인 방법이 있습니까? [view.layer getSublayerAtIndex: 0]
과 같은 것? viewcontroller에서 현재 그라디언트에 대한 참조를 저장하는 가장 쉬운 방법은 무엇입니까?
아이디어가 있으십니까? 당신은 단지 수,
[view.layer.sublayers objectAtIndex:0];
는 그런 다음 레이어를 교체 외에
[view.layer replaceSublayer:[view.layer.sublayers objectAtIndex:0] with:yourNewGradient];
고맙습니다. 이것은 내가 찾고 있었던 바로 그 것이었다. – user467225