问题:拇指颜色不是很完美,但是视图呈现了完美的颜色。
从滑块中选择颜色后,我需要更新拇指颜色。 我正在尝试使用下面的代码选择颜色,但是颜色带有一些黑色成分。我认为这是因为Alpha混合,所以我尝试了所有可行的AWS Boto 3 docs混合模式,但要么将全黑或黄色都与黑色混合了,如果将滑块背景设置为白色,则所选择的颜色将具有更白的颜色。因此,我确定是由于滑块的背景所致。奇怪的是,如果我单击中间的圆圈以选择颜色,然后单击滑块,它就会为我提供完美的颜色。我正在使用相同的功能从中间圆和滑块轨道获取颜色。
func getPixelColorAtPoint(point:CGPoint) -> (red: Int, green: Int, blue:Int, alpha: Int) {
let pixel = UnsafeMutablePointer<CUnsignedChar>.allocate(capacity: 4)
let colorSpace = CGColorSpace(name: CGColorSpace.sRGB)
let bitmapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.premultipliedLast.rawValue)
let context = CGContext(data: pixel, width: 1, height: 1, bitsPerComponent: 8, bytesPerRow: 4, space: colorSpace!, bitmapInfo: bitmapInfo.rawValue)
context?.translateBy(x: -point.x, y: -point.y)
layer.render(in: context!)
//let color:UIColor = UIColor(red: CGFloat(pixel[0])/255.0, green: CGFloat(pixel[1])/255.0, blue: CGFloat(pixel[2])/255.0, alpha: CGFloat(pixel[3])/255.0)
pixel.deinitialize(count: 4)
return (Int(pixel[0]), Int(pixel[1]), Int(pixel[2]), Int(pixel[3]))
}
我得到的结果是,您可以看到底视图呈现了确切的颜色,但是两个拇指都有一些黑色的混合。 CGBlendMode和