iOS CGContextAddArc和不同的屏幕分辨率

时间:2016-10-15 09:03:08

标签: ios graphics

我的应用程序绘制了一个图表,显示一个小圆圈作为重量和一部分的一部分。平衡计算,使用下面的代码。这一切都在iPad 2上完美运行,但圆圈无法在其他(更高分辨率)的iPad设备上显示。我增加了圆圈x 10的尺寸,但它仍然没有在更高分辨率的设备上显示......图表的线条组件(w& b边界)在所有设备上都能完美显示。

    for (int i = 0; i < [circlePointsArray count]; i++) {
        CGPoint circlePoint = [[circlePointsArray objectAtIndex:i] CGPointValue];
        CGContextBeginPath(context);
        CGContextAddArc(context, circlePoint.x, circlePoint.y, 3, -M_PI, M_PI, 1);
        CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
        CGContextFillPath(context);
    }

我迷失了这个......

1 个答案:

答案 0 :(得分:1)

将M_PI转换为float将解决问题。事实上CGContextAddArc采用CGFloat参数,而CGFloat在32位与64位平台上的定义不同。在32位上,它是一个浮点数,在64位上它是一个双倍的。

尝试以下代码 -

CGContextAddArc(context, 100., 100., 10., -(float)M_PI, (float)M_PI, YES);