UIGraphicsGetCurrentContext

UIGraphicsGetCurrentContext

我记录了用户触摸开始移动ipad时的每个点,然后将这些点添加到名为路径 CGMutablePathRef 中,然后使用以下代码绘制用户在ipad中触摸的线(路径)。

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineCap(context, kCGLineCapRound);
CGContextSetLineJoin(context, kCGLineJoinRound);
CGContextSetStrokeColorWithColor(context, [UIColor redColor]);
CGContextSetLineWidth(context, 2);
CGContextAddPath(context, path);
CGContextStrokePath(context);

但是这些线条看起来并不流畅,谢谢您的帮助

最佳答案

您可以使用以下方法获得更高的平滑度:

UIGraphicsBeginImageContext(self.frame.size);
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineJoin(UIGraphicsGetCurrentContext(), kCGLineJoinRound);
CGContextSetAllowsAntialiasing(UIGraphicsGetCurrentContext(), YES);
CGContextSetShouldAntialias(UIGraphicsGetCurrentContext(), YES);
CGContextSetMiterLimit(UIGraphicsGetCurrentContext(), 2.0);

但是,如果需要绘制非常平滑的线/曲线,则需要使用UIBezierCurve或其他任何弯曲算法来重绘线。

编辑:我在代码中做了一些更改以使绘图更流畅。检查我的经典开发板应用程序:https://itunes.apple.com/app/id493525167

08-26 05:24