【发布时间】:2011-06-26 06:40:00
【问题描述】:
我有这段代码:
CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
CGFloat colors[] = {
1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f,
};
CGGradientRef gradientRef = CGGradientCreateWithColorComponents(rgb, colors, NULL, sizeof(colors) / (sizeof(colors[0]) * 4));
CGColorSpaceRelease(rgb);
CGContextRef context = UIGraphicsGetCurrentContext();
CGRect rect = theCell.backgroundView.bounds;
CGPoint start = CGPointMake(rect.origin.x, 0);
CGPoint end = CGPointMake(rect.origin.x, rect.size.height/2);
CGContextDrawLinearGradient(context, gradientRef, start, end, kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation);
我想知道如何让它绘制到指定的视图中,并将参数传递给我的函数的剪切矩形。提示:我不介意drawRect,我没有继承任何东西。
提示 2:我不想插入以后无法删除的任何图层。
提示 3:这段代码没有画出我眼睛能看到的任何东西..... :-( 缺少图形端口?
提示 4:我想擦除绘图,只需更改背景颜色,就完成了...
【问题讨论】:
-
您可能不介意
drawRect:,但操作系统会。在drawRect:中画画。 -
@Ole Begemann:什么???世界上任何操作系统都允许您在指定的图形端口上绘制一些东西,而 Cocoa 不允许?甚至旧的 MacOS 也允许这样做......有什么问题?每次我想在某处画一条线时,我都必须对我的视图进行子类化?这听起来很疯狂!
-
你可以只画到图形端口,但你必须使用openGL。不过,您不需要子类,您可以使用普通的旧 UIView 并通过在与其关联的层和上下文上调用 QuartzCore 函数从视图控制器进行绘图。
标签: iphone graphics view clipping rect