我使用CGContextFillEllipseInRect
中的CoreGraphic
创建了一个圆圈。
我使用此圈(实际上是一个磁盘)来替换thumbImage
的{{1}}。默认情况下会应用抗锯齿。
但我的iPhone 6上的结果显然不太好。我可以清楚地看到像素,而不是关闭抗锯齿,但比普通UISlider的像素更多。
也许我做错了什么。所以我的问题是,有没有办法以编程方式获得与UISlider默认使用的相同的漂亮磁盘?
修改
以下是我创建磁盘的方法:
UISlider
答案 0 :(得分:5)
问题是您在使用UIGraphicsBeginImageContext
时正在创建非视网膜图形上下文,如文档中所述:
此函数相当于调用
UIGraphicsBeginImageContextWithOptions
函数,其中opaque参数设置为NO
,比例因子为1.0
。
相反,您应该使用UIGraphicsBeginImageContextWithOptions
来创建图像上下文。如果您想要一个支持透明度的图像(与您现在隐含的相同),可以继续传递NO
作为opaque参数。
在大多数情况下,您可以传递0.0
作为比例因子。这会将比例因子设置为设备主屏幕的比例因子。再次,如文档中所述:
如果指定值
0.0
,则比例因子将设置为设备主屏幕的比例因子。
因此,简而言之,您应该像这样创建图像上下文:
UIGraphicsBeginImageContextWithOptions(rectForDisk.size, false, 0.0) // false for Swift