#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.