渐变imageView iOS

时间:2011-06-28 15:08:47

标签: iphone ios uitableview

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

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

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

5 个答案:

答案 0 :(得分:3)

您必须覆盖视图的drawRect方法才能绘制渐变。它可以是一种PIA,但您也可以查看这个可能有用的开源组件:

http://cocoacontrols.com/platforms/ios/controls/gradient-view

答案 1 :(得分:3)

您可以使用Core Graphics(a.k.a。Quartz)在视图的-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。

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

简单的谷歌搜索会找到你的答案......

http://bluesplat-tech.blogspot.com/2009/03/gradient-shading-uiview.html

答案 4 :(得分:0)

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