色圈可以旋转,当圆圈旋转时,我想得到色圈三角形的颜色,我用的方法是:
- (UIColor *) colorOfPoint:(CGPoint)point
{
unsigned char pixel[4] = {0};
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(pixel, 1, 1, 8, 4, colorSpace, kCGBitmapAlphaInfoMask & kCGImageAlphaPremultipliedLast);
CGContextTranslateCTM(context, -point.x, -point.y);
[self.layer renderInContext:context];
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
//NSLog(@"pixel: %d %d %d %d", pixel[0], pixel[1], pixel[2], pixel[3]);
UIColor *color = [UIColor colorWithRed:pixel[0]/255.0 green:pixel[1]/255.0 blue:pixel[2]/255.0 alpha:pixel[3]/255.0];
return color;
}
但圆圈旋转时没有得到正确的颜色,我所有的代码都在github上: https://github.com/carya/GetViewColor,任何人都可以帮我解决这个问题,非常感谢。
PS:我测试了 - (UIColor *)colorOfPoint:(CGPoint)点法在正常视图中是正确的,但在我的代码中,结果看起来很奇怪。
更新
最后我修复了这个问题并发布了一篇文章来解释这一点,您可以访问this