Я использовал оба 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