2014-01-31 2 views
1

이것이 가능한지 확실하지 않지만 CALayers에서 일시 중지 단추를 만들려고합니다. 원을 만들었으므로 일시 중지 직사각형을 중간에 추가 할 수 있습니다. 그러나 일시 정지 선은 지정된 색으로되어있어 배경이 보이는대로 투명하게 보이게하고 싶습니다.CALayer 중간에서 모양을 자르는 방법

현재 원형 레이어가 있고 다음 일시 중지 레이어가있는 사용자 지정보기가 있습니다. 당신이 투명한 색으로 일시 정지 사각형을 채울 수있는 사전

+0

당신이'mask' 재산 봤어 투명한 사각형을 만들어? 그걸로 얼마나 너를 얻었 니? –

+0

CAShapeLayer를 사용하여 작은 직사각형을 만들고 이것을 원형 레이어의 .mask 속성으로 설정했지만 그 행을 제외하고는 모두 사라졌습니다. 분명히 그 선 경로를 벗어나는 내용이 모두 클리핑됩니다. – user2067925

+0

[calayer invert mask "] (http://stackoverflow.com/search?q=calayer+invert+mask) 그리고 그 결과를 보시오. [첫 번째 검색 결과] (http://stackoverflow.com/a/15376745/608157)는 사용자가 요구하는 것으로 보입니다. –

답변

0

거기

감사를 통해 쇼에 배치됩니다 어떤보기 때문에 원 층에서 사각형을 잘라하는 방법이 있나요.

[layer setFillColor:[UIColor colorWithRed:1 green:0 blue:0 alpha:.7].CGColor]; 

또는

CGContextSetFillColorWithColor(cpntext, [UIColor colorWithRed:1 green:0 blue:0 alpha:.7].CGColor); 

제가

사용한 0.7 (α)를 참조. 코드 아래 예를 들어

CAShapeLayer *layer =[CAShapeLayer layer]; 
    [layer setFrame:CGRectMake(0, 0, 100, 100)]; 
    UIBezierPath *path =[UIBezierPath bezierPathWithRect:CGRectMake(20, 20, 20, 80)]; 

    [layer setFillColor:[UIColor colorWithRed:1 green:0 blue:0 alpha:.7].CGColor]; 
    [layer setPath:path.CGPath]; 
    [self.view.layer addSublayer:layer]; 
관련 문제