colorWithPatternImage создает черные сетки в iphone 4

у меня есть

UIView *topPart = [[UIView alloc] initWithFrame:CGRectMake(9, 0, 302, 318)];
topPart.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"pattern.png"]];
[someScroller addSubview:topPart];
[topPart release];

и я хорошо вижу шаблон, когда использую 3gs или симулятор iphone, но когда я тестировал на реальном iPhone 4, я вижу изображения шаблона, но есть черные линии, разделяющие каждый шаблон, так что он выглядит как сетка. Я проверил изображение шаблона, и там нет черной рамки или чего-либо еще.

Был кто-то с другой проблемой, но это может быть то же решениеcolorWithPatternImage с дисплеем Retina iPhone 4 ([email protected])

но они предложили использовать - (void) drawRect: метод, единственная проблема в том, что я понятия не имею, как это сделать.

Спасибо

 Raj03 окт. 2011 г., 09:19

Ответы на вопрос(2)

что это связано с тем, что мой png был в оттенках серого (не RGB)

Чтобы проверить, так ли это, просто выберите изображение в Xcode, покажите боковую панель Utilities (ту, которая появляется справа) и посмотрите на цветовое пространство.

Чтобы это исправить, вы можете использовать свой любимый графический редактор, но для фотошопа сделайте следующее: Откройте изображение в оттенках серого. Выберите все и скопируйте. Создайте новый документ (но на этот раз убедитесь, что цветовое пространство - RGB). Вставить.

Надеюсь, это поможет :)

Решение Вопроса

https://devforums.apple.com/message/259150#259150

Как я могу использовать CGContextDrawTiledImage для мозаичного изображения?

UIImage *thePattern= [self GetFineTiles:[UIImage imageNamed:@"Feedbackpattern.png"]];
theView.backgroundColor = [UIColor colorWithPatternImage:thePattern];

-(UIImage*)GetFineTiles:(UIImage*)badImage{
    UIGraphicsBeginImageContext(badImage.size);
    CGContextRef imageContext = UIGraphicsGetCurrentContext();
    CGContextDrawTiledImage(imageContext, (CGRect){CGPointZero,badImage.size}, badImage.CGImage);
    UIImage *goodPattern = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return goodPattern;
}

Надеюсь, что это помогает другим

Ваш ответ на вопрос