我正在开发一个必须支持iOS 7和6的iOS应用程序。该应用程序在iOS 7下运行良好但我在iOS 6下遇到了一个非常奇怪的错误。
在几乎每个视图的顶部都会出现扭曲的图像。当然,我从未在这些位置的视图层次结构中添加这些图像。这些图像实际上是我的故事板中使用的图标。
即使以下屏幕截图来自iOS 6模拟器,您也可能会注意到UI看起来像iOS 7。这是因为我使用的是iOS7Kit。我试过禁用它,蚂蚁不是问题的原因。
问题也出现在物理iOS 6设备上,因此这不是模拟器的错误。
我不知道该寻找什么来解决这个错误......有什么想法吗?
在这种情况下,失真的图像来自菜单:
我的故事板菜单视图的截图(如您所见,使用容器视图):
!
在设置视图中,失真图像来自设置视图本身:
我的故事板设置视图的屏幕截图(也使用容器视图):
答案 0 :(得分:0)
当我注意到扭曲的图像只是我通过编程方式获得"选择的图像时,终于发现了问题。颜色。
我正在使用以下功能(如果我记得很清楚的话,从SO回答):
- (UIImage *)colorImageWithColor:(UIColor *)color
{
// Make a rectangle the size of the image
CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);
// Create a new bitmap context based on the current image's size and scale, that has opacity
UIGraphicsBeginImageContextWithOptions(self.size, NO, self.scale);
// Get a reference to the current context (which we just created)
CGContextRef context = UIGraphicsGetCurrentContext();
// Draw the image into the context we created
[self drawInRect:rect];
// Set the fill color of the context
CGContextSetFillColorWithColor(context, [color CGColor]);
// This sets the blend mode, which is not super helpful. Basically it uses your fill color with the alpha of the image and vice versa.
CGContextSetBlendMode(context, kCGBlendModeSourceAtop);
// Now apply the color and blend mode onto the context.
CGContextFillRect(context, rect);
// Grab the result of all this drawing from the context.
UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
// Destroy the bitmap context
UIGraphicsEndImageContext();
return result;
}
UIGraphicsEndImageContext();
来电失踪。在返回函数之前添加它可以解决问题。