Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何以恒定的强度在自定义视图(视网膜)中绘制一条线?_Swift_Macos_Cocoa_Nsview - Fatal编程技术网

Swift 如何以恒定的强度在自定义视图(视网膜)中绘制一条线?

Swift 如何以恒定的强度在自定义视图(视网膜)中绘制一条线?,swift,macos,cocoa,nsview,Swift,Macos,Cocoa,Nsview,我想写一个自定义的绘图视图,它应该利用视网膜显示。我使用的是2019款MacBook Pro。为了测试这幅画,我只画了一条宽度为1px的平行线。但是这些线在整个视图中显示出不均匀的亮度 我已经尝试了从中发布的屏幕坐标转换 这是views draw(…)方法中的相关代码块 //用黑色背景填充 let background:NSBezierPath=NSBezierPath(rect:bounds) NSColor.black.setFill() background.fill() //创建一条显

我想写一个自定义的绘图视图,它应该利用视网膜显示。我使用的是2019款MacBook Pro。为了测试这幅画,我只画了一条宽度为1px的平行线。但是这些线在整个视图中显示出不均匀的亮度

我已经尝试了从中发布的屏幕坐标转换

这是views draw(…)方法中的相关代码块

//用黑色背景填充
let background:NSBezierPath=NSBezierPath(rect:bounds)
NSColor.black.setFill()
background.fill()
//创建一条显示1px宽垂直线的路径
let路径:NSBezierPath=NSBezierPath()
let height:CGFloat=self.bounds.height
变量xPosition:CGFloat=0.0
而self.frame.width>xPosition{
设rect:NSRect=NSRect(x:xPosition,y:0,宽:0.5,高:高)
path.appendRect(rect)
xPosition+=10.0
}
NSColor.yellow.setFill()
path.fill()
结果如图所示
线条变得越来越亮又越来越暗,它们的强度应该是一样的

好的,我找到了解决办法。我不知道,设置为默认/未缩放的“未缩放”MacBook Pro显示器实际上是缩放的。默认情况下,苹果将屏幕分辨率提高了1125倍。要查看正确的屏幕,您需要选择“缩放”并向下一步以查看nativ屏幕分辨率。我仍然在想,除了使用更宽的线条外,是否有优化措施可以在缩放显示上获得更好的效果

我还在iPhone上试用了一个经过调整的版本,结果显示正确您的屏幕截图示例未发布,或不可见,但我猜你看到了抗锯齿的效果。这也是我的想法,但我没有找到禁用它的方法,或者如何处理这可能是你的显示硬件的瑕疵。另外,如何在系统首选项中配置显示分辨率?它是否缩放到默认值以外的其他值?没有任何东西是不缩放的;它是默认的2560 x 1600分辨率。另外,其他所有内容看起来都很清晰,因此如果是配置问题,那么其他所有内容都应该有相同的问题