2013-01-05 27 views
6

Đoạn mã dưới đây vẽ một đường tròn hình elip hoàn hảo, nhưng không điền vào các góc của chế độ xem đó. Làm cách nào để tôi vẽ nó ra ngoài mép của hình elip? Tùy chọn được ghi lại là kCGGradientDrawsAfterEndLocation, nhưng tôi nghĩ nó không có sẵn trong ios.iOS, Vẽ gradient xuyên tâm lấp đầy lại số

- (void)drawRect:(CGRect)rect 
{ 
    CGFloat colors [] = { 
     0.2, 0.2, 0.2, 1.0, 
     0.0, 0.0, 0.0, 1.0 
    }; 
    CGColorSpaceRef baseSpace = CGColorSpaceCreateDeviceRGB(); 
    CGGradientRef gradient = CGGradientCreateWithColorComponents(baseSpace, colors, NULL, 2); 
    CGColorSpaceRelease(baseSpace), baseSpace = NULL; 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSaveGState(context); 
    CGContextAddEllipseInRect(context, rect); 
    CGContextClip(context); 
    CGContextDrawRadialGradient(context, gradient, self.center, 0, self.center, self.frame.size.width, kCGGradientDrawsAfterEndLocation); 
    CGGradientRelease(gradient), gradient = NULL; 
    CGContextRestoreGState(context); 
} 

enter image description here

Trả lời

4

Bạn đã cắt bớt các bản vẽ đến hình elip. Điều đó dừng gradient được rút ra bên ngoài khu vực cắt. Hủy bỏ dòng nơi bạn thêm hình elip và clip ngữ cảnh.

+0

duh, cảm ơn sir ... – Mrwolfy

Các vấn đề liên quan