Кто-нибудь когда-либо видел проблему [UIColor initWithPatternImage] игнорирования альфа-значений PNG?Если да, то какое решение лучше?
Я использую png в качестве фонового слоя для моего массива объектов кнопок, и он содержит несколько предварительно установленных альфа-значений на пиксель изображения, которое будет использоваться в качестветекстура фонОн прекрасно загружается как шаблон / цвет текстуры, но все прозрачные области клавиш отображаются непрозрачными черными.
Важно, чтобы я получил правильные значения альфа-канала, чтобы изображения кнопок отображались правильно.Рамки кнопок не включают альфа-тени от фона, так как это не «кликабельная» часть кнопки.Кроме того, изображения моего объекта кнопки и фоновые изображения также используют прозрачность, поэтому на самом деле необходимо иметь чистый фон непосредственно за каждой кнопкой, чтобы обеспечить правильные текущие текущие настройки цвета (для нижнего слоя UIView будет установлен цвет фона натекущий цвет выбранного пользователя).Установка только одного альфа-значения для слоя UIView, содержащего эту текстуру, также не подходит для моих нужд.
Любая помощь будет принята с благодарностью.Мой нынешний обходной путь - использовать полностью продуманный, многократно запрограммированный макет нескольких UIImageView с использованием png вместо одного UIView с заливкой шаблона.
Вот фрагмент кода, но он довольно стандартный дляпревращение UIImage в UIColor для использования в качестве цвета шаблона / текстуры:
UIView *selectorView = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,320)];
UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"SelectorViewBackground.png"]];
selectorView.backgroundColor = background;
[mainView addSubview:selectorView]; // pattern background layer. Add UIButtons on top of this selectorView layer
[self addSubview:mainView]; // current user selected color set in mainView.
[selectorView release];
[background release];