扭曲的图像显示在视图的顶部,仅在iOS 6上显示

时间:2014-09-07 12:29:46

标签: ios ios6

我正在开发一个必须支持iOS 7和6的iOS应用程序。该应用程序在iOS 7下运行良好但我在iOS 6下遇到了一个非常奇怪的错误。

在几乎每个视图的顶部都会出现扭曲的图像。当然,我从未在这些位置的视图层次结构中添加这些图像。这些图像实际上是我的故事板中使用的图标。

即使以下屏幕截图来自iOS 6模拟器,您也可能会注意到UI看起来像iOS 7。这是因为我使用的是iOS7Kit。我试过禁用它,蚂蚁不是问题的原因。

问题也出现在物理iOS 6设备上,因此这不是模拟器的错误。

我不知道该寻找什么来解决这个错误......有什么想法吗?

在这种情况下,失真的图像来自菜单:

Distorted image at the top of the gallery view.

我的故事板菜单视图的截图(如您所见,使用容器视图):

Storyboard menu view

在设置视图中,失真图像来自设置视图本身:

Distorted image at the top of the settings view

我的故事板设置视图的屏幕截图(也使用容器视图):

Storyboard settings view

1 个答案:

答案 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();来电失踪。在返回函数之前添加它可以解决问题。