我正在绘制一个带有几个圆角的简单矩形:
UIBezierPath * p = [UIBezierPath bezierPathWithRoundedRect:outline
byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight
cornerRadii:CGSizeMake(8, 8)];
奇怪的是,左上角似乎不完整 - 缺少一个小缺口:
奇怪的是 - 如果添加[p close]
- 问题就会消失。现在文档建议:
此方法创建一个封闭的子路径,顺时针方向前进 它创建的方向(相对于默认坐标系) 必要的线和曲线段。
所以我想知道哪里出了问题?我是否误解了文档 - 或者我的代码中是否存在细微的错误/问题?
为完整起见,违规代码为
- (void)drawRect:(CGRect)rect {
CGRect outline = CGRectInset(self.bounds, 4, 4);
UIBezierPath * p = [UIBezierPath bezierPathWithRoundedRect:outline
byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight
cornerRadii:CGSizeMake(8, 8)];
// [p closePath];
[[UIColor blackColor] setStroke];
[p setLineWidth:4];
[p stroke];
....
答案 0 :(得分:1)
看起来最终路径实际上并未关闭,这可能是一个错误(如果是这样,值filing) - 基本上,因为它不知道开始点和结束点是连接的,所以你是看到端盖(by default仅绘制到路径的确切末端)而不是连续线。听起来你的ruby -v
解决方案有效;跟着那个。