몇 가지 편리한 드로잉 메서드를 구현하는 사용자 지정 UIView가있어서 특정 모서리의 모서리 반경을 설정하고 테두리를 그리고 배경색 대신 그라디언트를 사용할 수 있습니다. 나는 drawRect(rect:CGRect)
을 오버라이드하여 이것을 달성했다. 그러나 CGContextClip
을 사용하여 CGPathRef에 그리기 클립을 만들지 만 배경색은 항상 뷰의 경계를 채우기 위해 그려집니다. 이는 drawRect가 호출되기 전에 뷰의 레이어가 그려지기 때문입니다.CALayer가 배경색을 그리는 것을 방지하려면 어떻게해야합니까?
backgroundColor에 대한 setter를 재정의하는 것 외에 drawRect에서 지정한 내용 만 그리는 다른 방법이 있습니까? 나는 CAShapeLayer 또는 어떤 종류의 레이어로 레이어를 가리고 싶지 않습니다. 레이어의 범위 바깥에서 하위 클래스로 그리고 그릴 수 있어야합니다.
색상을 지우고 세터를 무시하도록 'backgroundColor'를 설정하십시오. 그것이 당신이 할 수있는 유일한 방법입니다. 또한 속성'clearsContextBeforeDrawing'과'opaque'를 주목하십시오. – Sulthan
그래, 현재 backgroundColor 재정의 메서드를 사용하고 있지만 더 좋은 방법이 있는지 궁금해했습니다. 있는 것 같지 않습니다. – GoldenJoe