如何在objective-c中显示虚线?

时间:2014-03-11 04:42:47

标签: ios objective-c

我有这段代码用虚线显示网格。在运行时在iphone 5下面它显示正常,但如果我在iPhone 5s上运行应用程序没有网格。我在iPhone模拟器和真实设备上测试过,并且也是如此。

以下是代码:

if (self.dashLongitude) {
    CGFloat lengths[] = {3.0, 3.0};
    CGContextSetLineDash(context, 0.0, lengths, 2);
}

//other stuff here

CGContextSetLineDash(context, 0, nil, 0);

所以任何人都可以帮忙?

编辑:嘿伙计们我使用我在这里发布的相同代码解决了这个问题,但采用了不同的方法。所以我现在有两个方法:一个用于绘制网格,另一个用于绘制数据线,最后使一切工作。

2 个答案:

答案 0 :(得分:0)

代码看起来很好。

当我查看代码时,我看到你在上下文中设置了nilnil用于删除虚线。

尝试使用

CGFloat dash[] = {2.0, 2.0};
CGContextSetLineDash(context, 0.0, dash, 2);

你在哪里创建或提供你的线(在下面)。

CGContextSetLineDash(context, 0, NULL, 0);

用于删除破折号模式。

答案 1 :(得分:0)

不是在nil中设置CGContextSetLineDash,而是在应用行短划线之前将代码包装到CGContextSaveGState / CGContextRestoreGState中以保留上下文状态:

CGContextSaveGState(context);

CGFloat dash[] = {2.0, 2.0};
CGContextSetLineDash(context, 0.0, dash, 2);    

// Draw some lines here

CGContextRestoreGState(context);