2
我以前使用過UIBezierPath
和CAShapeLayer
。但幾乎每次都要用裏面的顏色填充路徑中包含的對象。但是我希望這次能夠填充UIBezierPath
包含的對象之外的顏色。iOS:UIBezierPath和CAShapeLayer fillRule
我只是編寫並運行了以下簡單的代碼努力地讓自己熟悉的fillRule
屬性:
CAShapeLayer *myLayer = (CAShapeLayer*) self.layer; //size: 320 X 480
UIBezierPath *testPath = [UIBezierPath bezierPathWithOvalInRect:(CGRect){{100, 100}, 100, 100}]; //a simple circle
myLayer.fillRule = kCAFillRuleNonZero; // have tried this as well: kCAFillRuleEvenOdd;
myLayer.path = testPath.CGPath;
myLayer.fillColor = [UIColor whiteColor].CGColor;
但顏色仍然充滿裏面。我想知道的是,我如何填補路徑之外的顏色?如果我在這裏使用fillRule
錯誤,我想知道是否有其他方法可以實現此目的。提前致謝。
嗨,嘿,你真的很擅長這個。 +1。謝謝。爲了完整性,「CGMutablePath」可以做到同樣的事情嗎?提前致謝。 – Unheilig
儘管如此,我會首先標記這個答案。希望你可以詳細闡述一下'CGMutablePath'。 – Unheilig
是的,基本思想同樣適用於'CGPath'使用CGPathAddArc等。 – frozendevil