Подтвердить что ты не робот

Как сохранить прозрачность изображения при использовании colorWithPatternImage:

У меня есть изображение, подготовленное с прозрачностью, например:

alt text

С двумя представлениями UI я настраиваю цвета фона так:

self.view.backgroundColor = [UIColor groupTableViewBackgroundColor];
self.dashedView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"red_square.png"]];

Я ожидаю, что красный квадрат будет повторяться над UIView с сохраненной прозрачностью, но он был заполнен сплошным цветом следующим образом:

alt text

Я не понимаю, почему. Есть ли простой способ рисовать черепичное изображение с прозрачностью? Или мне нужно посмотреть на рисунки Core Graphics?

4b9b3361

Ответ 1

Образцы рисунков должны поддерживать прозрачность.

Попробуйте [self.dashedView setOpaque:NO]

Ответ 2

все, что вам нужно сделать, установить opaque в NO после установки colorWithPatternImage.

self.dashedView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"red_square.png"]];
self.dashedView.opaque = NO;

Ответ 3

Яр, спасибо за отзывы.

Я обнаружил, что это происходит только на iOS 4.3.x, но не на iOS 5.0.x. Итак, на 4.3.x я должен был сделать то, что Яр id, и установить непрозрачность в НЕТ, а затем установить фоновое изображение, а затем установить значение YES.

UIButton* cancelButton = [UIButton buttonWithType:UIButtonTypeCustom];
cancelButton.opaque = YES; // fix for strange issue in 4.x, need to set YES, set bg color image, then set back to NO
cancelButton.backgroundColor = [UIColor colorWithPatternImage: cancelImage];
cancelButton.opaque = NO;