【发布时间】:2014-10-17 14:22:52
【问题描述】:
我创建了一个使用从 PaintCode 导入的代码绘制咖啡杯的类,并将该类应用于视图。使用@IBDesignable,我可以在我的故事板中看到杯子是在视图内绘制的,但是整体形状太大了。我可以在代码中重新绘制形状,使其适合视图的当前大小,但是没有办法在绘制后缩放形状,以便当我的视图在不同设备上改变大小时,形状可以正确缩放?
我已经查看了CGContextScaleCTM(aRef, <#sx: CGFloat#>, <#sy: CGFloat#>),但我不确定如何将我视图的bounds 的CGRect 转换为正确的比例因子
我不想全部发完,但我的绘图代码是这样开始的
bezierPath.moveToPoint(CGPointMake(64.8, 52.81))
bezierPath.addCurveToPoint(CGPointMake(58.89, 43.44), controlPoint1: CGPointMake(64.21, 48.28), controlPoint2: CGPointMake(62.11, 44.95))
bezierPath.addCurveToPoint(CGPointMake(56.82, 42.76), controlPoint1: CGPointMake(58.24, 43.13), controlPoint2: CGPointMake(57.55, 42.9))
然后继续
bezierPath.closePath()
bezierPath.miterLimit = 4
bezierPath.usesEvenOddFillRule = true;
还有另外两块绘制代码,用于为咖啡蒸汽绘制两条小线。我将这两个路径附加到原始bezierPath,然后设置填充颜色并填充整个形状。
【问题讨论】:
-
我会根据您要绘制的尺寸制作绘图代码。缩放可能会导致伪影。
-
@dasdom Add 添加了我用来绘制形状的技术示例。您能否指出我如何根据尺寸制作图纸的正确方向?
-
将绘制代码放入带frame参数的方法中。使用框架的原点定义位于左上角的点的相对坐标,并使用大小和原点定义右下角的坐标。绘图代码是否在
drawRect:方法中?
标签: swift scale ios8 uibezierpath