UIScrollView — прозрачный PNG, скользящий по фону изображения

#objective-c #uiscrollview

#objective-c #uiscrollview

Вопрос:

Пытаюсь добиться отображения прозрачности PNG в UIScrollView. Вместо прозрачного теперь все черное. Я попытался установить view.opaque = NO и view.backgroundColor = [UIColor clearColor] безрезультатно.

RootViewController имеет фон изображения, установленный с

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

RootViewController также имеет UIScrollView, в который я загружаю два других представления UIViewController (левый экран, центральный экран):

 CGRect frame = scrollView.frame;
frame.origin.x = 0;  
frame.origin.y = 0;
leftScreen.view.frame = frame;
[scrollView addSubview:leftScreen.view];

frame.origin.x = frame.size.width;
frame.origin.y = 0;
centralScreen.view.frame = frame;
[scrollView addSubview:centralScreen.view];
  

У centralScreen.view есть 24-битный прозрачный PNG-фон, который я установил в его UIViewController с помощью

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

В итоге PNG-фон центрального экрана имеет черный цвет там, где должна быть прозрачность. Любые рекомендации / подсказки о том, как это исправить? Спасибо!

Комментарии:

1. Просто любопытно, что вы ожидаете увидеть за прозрачностью? Вы пытаетесь заставить центральный экран скользить по левому экрану? Похоже, что они оба будут скользить влево вместе.

Ответ №1:

Вы не должны использовать backgroundColor для этого, потому что вы потеряли какой-либо контроль над тем, как изображение рисуется (т. Е.: Вы не можете изменить его размер). Я предлагаю вам поместить UIImageView в качестве «фона» (добавьте его, а затем используйте sendSubviewToBack:).

Комментарии:

1. Спасибо за подсказку. Использование UIImageView для отображения прозрачного PNG сработало. Оказывается, colorWithPatternImage по какой-то причине не учитывает прозрачность PNG.