0
은 그냥 NSView의에 부정적인 공간을 제공하는 방법에 대해 궁금해했고 나는 단어에 제대로 설명 할 수 없기 때문에 나는 당신에게 원하는 효과의 사진이 표시됩니다 :NSView의 /의 CALayer는 빼서 마스크
http://s16.postimg.org/lci7s2s8l/stackoverflow_problem.jpg
을추가 질문을 두려워하지 마십시오.
미리 감사드립니다. 당신이 채택 할 수 위치 텍스트 더 많은 유연성을 가지고 :
// Setup layer-hosting view.
NSView *view = [[NSView alloc] initWithFrame:viewFrame];
view.wantsLayer = YES;
view.layer = [CALayer layer];
view.layerUsesCoreImageFilters = YES;
CATextLayer *textLayer = [CATextLayer layer];
textLayer.string = @"Masked Text";
textLayer.frame = NSRectToCGRect(viewFrame);
[view.layer addSublayer:textLayer];
CALayer *colorLayer = [CALayer layer];
colorLayer.backgroundColor = [[NSColor greenColor] CGColor];
colorLayer.frame = NSRectToCGRect(viewFrame);
[textLayer addSublayer:colorLayer];
CIFilter *filter = [CIFilter filterWithName:@"CISourceOutCompositing"];
[filter setDefaults];
colorLayer.compositingFilter = filter;
업데이트가 같은
이CATextLayer
`-CALayer with desired backgroundColor and CISourceOutCompositing compositingFilter
대응하는 코드는 같습니다 옵션의
위대한 답변입니다. 마스크를 움직이지 않고 CATextLayer의 텍스트를 아래쪽으로 몇 픽셀 아래로 이동하여 텍스트를 세로로 가운데에 맞출 수있는 솔루션이 있습니까? – wottpal
'textLayer'를 아래로 이동할 수있는 새로운 계층 구조로 답변을 업데이트했습니다. –