首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gradient imageView iOS

Gradient imageView iOS
EN

Stack Overflow用户
提问于 2011-06-28 23:08:47
回答 5查看 1.5K关注 0票数 4

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

代码语言:javascript
复制
    UIView *bgColorView = [[UIView alloc] init];
    [bgColorView setBackgroundColor:[UIColor orangeColor]];
    [cell setSelectedBackgroundView:bgColorView];
    [bgColorView release];

但它是一个实心的橙子。我想让它看起来更光滑,并有一个从浅橙色到深橙色的轻微渐变。我该怎么做呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-28 23:14:08

您将使用Core Graphics (也称为Quartz)在视图的-drawRect:方法中绘制渐变:

代码语言:javascript
复制
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。

票数 3
EN

Stack Overflow用户

发布于 2011-06-28 23:14:04

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

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

票数 3
EN

Stack Overflow用户

发布于 2011-06-28 23:19:10

@Caleb的答案是正确的;我这样做的目的很多。

没有人提到的是,您需要为其实现drawRect:的视图是一个自定义UITableViewCell

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6508674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档