【发布时间】:2012-01-31 11:12:23
【问题描述】:
在 iOS 的 UIView 中绘制矩形时,我一直遇到同样的问题:矩形边距将它们的颜色与背景混合。我尝试了几种矩形绘制方法,结果相同——使用贝塞尔路径,逐行绘制,绘制边距并填充矩形内部。
视图的框架本身总是正确绘制的。我什至考虑过在需要矩形时使用视图,但这似乎不是专门做事的正确方法,因为我需要绘制许多视图。
这是我的问题的一个例子。为了比较,我正在绘制一个具有相同尺寸的矩形绿色视图:
CGRect horizontalBar = CGRectMake(2, 2, 10, 6);
UIView* horizontalBarSubView = [[UIView alloc] initWithFrame:horizontalBar];
horizontalBarSubView.backgroundColor = [UIColor greenColor];
[self addSubview:horizontalBarSubView];
[horizontalBarSubView release];
对于矩形本身:
CGRect horizontalBar = CGRectMake(2, 20, 10, 6);
UIBezierPath* horizontalBarPath = [UIBezierPath bezierPathWithRect:horizontalBar];
[[UIColor greenColor] set];
[horizontalBarPath fill];
这会产生以下结果(10 倍缩放):
是什么导致颜色混合?
如何避免这种情况?
【问题讨论】:
标签: objective-c ios cocoa-touch uiview uibezierpath