2011-06-28 57 views
4

我自定义我的UITableView,我想出了如何设置每个单元格的选定颜色。在我cellForRowAtIndexPath的方法,我有以下代码:渐变imageView iOS

UIView *bgColorView = [[UIView alloc] init]; 
    [bgColorView setBackgroundColor:[UIColor orangeColor]]; 
    [cell setSelectedBackgroundView:bgColorView]; 
    [bgColorView release]; 

但它是一个坚实的橙色。我想让它看起来更光滑,并且从浅橙色到深橙色都有轻微的渐变。我怎样才能做到这一点?

回答

3

你会使用核芯显卡(又名石英)在您的视图的-drawRect:方法来绘制一个渐变:

CGContextRef ctx = UIGraphicsGetCurrentContext(); 
CGFloat colors[8] = {1.0, 0.75, 0.30, 0.5, 0.7, 0.2, 1.0, 0.8}; 
CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB(); 
CGGradientRef gradient = CGGradientCreateWithColorComponents(space, colors, NULL, 2); 
CGContextDrawLinearGradient(ctx, gradient, top, bottom, NULL); 

呦您可以通过在当前上下文(ctx)中创建路径以及使用CGContextClip(ctx);对其进行裁剪来限制渐变填充的区域。 topbottom是CGPoints,它们定义了渐变的开始和结束。

1

@ Caleb的答案是正确的;我为此做了各种各样的事情。

没有人提到的是,您需要实施的视图drawRect:是自定义UITableViewCell

0

如果你想要一个复杂或微妙的渐变,你可以设置一个背景图像是部分alpha,并设置单元格背景颜色来改变外观。