我有这段代码用虚线显示网格。在运行时在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);
所以任何人都可以帮忙?
编辑:嘿伙计们我使用我在这里发布的相同代码解决了这个问题,但采用了不同的方法。所以我现在有两个方法:一个用于绘制网格,另一个用于绘制数据线,最后使一切工作。答案 0 :(得分:0)
代码看起来很好。
当我查看代码时,我看到你在上下文中设置了nil
。 nil
用于删除虚线。
尝试使用
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);