2011-01-21 98 views

回答

1

如果该视图及其标签位于某个静态背景图像或颜色上,则快速肮脏的技巧是创建该图像或颜色的渐变PNG并将它们放在视图上。

否则,请参阅您是否可以修改this CALayer gradient mask solution以供您查看。

3

Ray Wenderlich有一个伟大的教程设置对象的渐变。我的建议是修改以下代码以满足您的需求。

//Ray's code: 
void drawLinearGradient(CGContextRef context, CGRect rect, CGColorRef startColor, 
    CGColorRef endColor) { 
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 
    CGFloat locations[] = { 0.0, 1.0 }; 

    NSArray *colors = [NSArray arrayWithObjects:(id)startColor, (id)endColor, nil]; 

    CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, 
     (CFArrayRef) colors, locations); 

    CGPoint startPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMinY(rect)); 
    CGPoint endPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMaxY(rect)); 

    CGContextSaveGState(context); 
    CGContextAddRect(context, rect); 
    CGContextClip(context); 
    CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0); 
    CGContextRestoreGState(context); 

    CGGradientRelease(gradient); 
    CGColorSpaceRelease(colorSpace); 
}