điền một con đường với một màu rất dễ dàng đủ:Làm thế nào để điền vào một đường dẫn với gradient trong drawRect :?
CGPoint aPoint;
for (id pointValue in points)
{
aPoint = [pointValue CGPointValue];
CGContextAddLineToPoint(context, aPoint.x, aPoint.y);
}
[[UIColor redColor] setFill];
[[UIColor blackColor] setStroke];
CGContextDrawPath(context, kCGPathFillStroke);
Tôi muốn vẽ một gradient thay vì màu đỏ rắn, nhưng tôi đang gặp khó khăn. Tôi đã thử các mã được liệt kê trong câu hỏi/trả lời: Gradients on UIView and UILabels On iPhone
đó là:
CAGradientLayer *gradient = [CAGradientLayer layer];
[gradient setFrame:rect];
[gradient setColors:[NSArray arrayWithObjects:(id)[[UIColor blueColor] CGColor],
(id)[[UIColor whiteColor] CGColor], nil]];
[[self layer] setMasksToBounds:YES];
[[self layer] insertSublayer:gradient atIndex:0];
Tuy nhiên, điều này vẽ nên xem toàn bộ rằng đây là với gradient, bao che cho con đường ban đầu của tôi.
Nếu tôi có thể mang đến cho bạn huy hiệu tuyệt vời tôi sẽ làm! Bạn có biết bất kỳ hướng dẫn nào về CGContextSaveGState và nội dung không? Bởi vì tham khảo lớp táo là loại mỏng. – Derrick
Derrick: Hướng dẫn lập trình 2D của Quartz bao gồm, cùng với mọi thứ khác: http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_overview/dq_overview.html#//apple_ref/doc/ uid/TP30001066-CH202-TPXREF132 –
Sau khi sử dụng mã ví dụ của bạn, bóng của tôi đã biến mất. Tôi đã thử di chuyển đường bóng ("CGContextSetShadow (bối cảnh, CGSizeMake (5.0, -5.0), 4);") trước khi gstate lưu, sau khi nó, befroe phục hồi gstate, sau đó, trước và sau khi cắt - không có gì đã giúp. – Doron