Cocoa touch CoreGraphics:在视图中心绘制矩形
我有一个Cocoa touch CoreGraphics:在视图中心绘制矩形,cocoa-touch,core-graphics,drawrect,cgcontext,Cocoa Touch,Core Graphics,Drawrect,Cgcontext,我有一个UIView子类,它覆盖了drawRect:方法。在那里,我有一长行生成的代码来绘制一些东西 生成的代码存在一个问题,即硬编码路径/线的所有顶点/坐标。因此,要绘制一个100x100的正方形,它将从0,0开始,然后转到0100->100100->100,0。要基于UIViewbounds属性进行此形状缩放,请执行以下操作: // This is the size of the drawing. I always know this value beforehand. CGSize con
UIView
子类,它覆盖了drawRect:
方法。在那里,我有一长行生成的代码来绘制一些东西
生成的代码存在一个问题,即硬编码路径/线的所有顶点/坐标。因此,要绘制一个100x100的正方形,它将从0,0开始,然后转到0100->100100->100,0。要基于UIView
bounds
属性进行此形状缩放,请执行以下操作:
// This is the size of the drawing. I always know this value beforehand.
CGSize contentSize = SHAPE_XMARK_SIZE;
CGFloat scaleX = self.bounds.size.width / contentSize.width;
CGFloat scaleY = self.bounds.size.height / contentSize.height;
CGContextScaleCTM(context, MIN(scaleX, scaleY), MIN(scaleX, scaleY));
就规模而言,一切都很好。现在,我希望图纸的位置也与边界相关。我想让drawRect:
方法也基于边界对齐图形
我在想这样的事情:
推上下文方法
绘图代码
流行语境
定位前一上下文
这是明智的做法吗?还是推送和流行的环境无法完成这样的魔法
一种简单的方法:
为了回答“您尝试了什么”的问题,我尝试使我绘制的视图与边界
大小相等的视图隔离,然后将该视图嵌入到另一个视图中。。。它是有效的。然而,这种方法很乏味,如果可能的话,我宁愿避免它。Pfft,答案非常简单。我猜我是1,所以是0
CGContextTranslateCTM(context, xOffset, yOffset);
是的,我不知何故忽略了一个事实,即应该存在一个很棒的函数来翻译CGContextRef
,因为存在scale函数
其余的都是实现垂直和水平对齐的简单数学