UIView Проблема прозрачности фонового изображения - PullRequest
2 голосов
/ 04 июля 2011

Я добавил подпредставление с изображением PNG, которое должно отображаться с прозрачностью, но я получаю весь черный там, где должна быть прозрачность.

Код:

- (void)viewDidLoad
{
    [super viewDidLoad];
    toolbar.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"BannerBackground.png"]];
    logoImage = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 120, 56)];
    logoImage.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Logo.png"]];
    [self.view addSubview:logoImage];

}

Это код для iPad, iOS версии 4.3. У меня такая же проблема как с симулятором, так и с iPad.

Поскольку это последнее добавленное представление, я ожидаю, что индекс z будет выше, чем у всех других представлений, поэтому другие представления должны отображаться через прозрачные области. Это не работает.

Ответы [ 6 ]

1 голос
/ 17 января 2012

Я заметил, что на iOS 4.3.x это ведет себя иначе, чем 5.0.x .В 4.3.x я должен был установить непрозрачность на YES, затем установить фоновое изображение, а затем установить его обратно на NO.

0 голосов
/ 22 января 2013

Старый вопрос, но: есть ли шанс, что ваша прозрачность, например, черная и не совсем прозрачная?Не то чтобы я только что это сделал или что-то в этом роде.

(Рисуя значок панели инструментов, iOS заполняет любые пиксели, включая черные, белым. Убедитесь, что на самом деле нет ничего там, где вы ожидаете, что ваша прозрачная область будет.)

0 голосов
/ 02 марта 2012

Это должно работать.

#import <QuartzCore/QuartzCore.h>



logoImage = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 120, 56)];
logoImage.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Logo.png"]];
[logoImage.layer setOpaque:NO];
logoImage.opaque = NO;


[self.view addSubview:logoImage];
0 голосов
/ 17 января 2012

Создайте UIImageView с прозрачным backgroundColor и вашим логотипом в качестве изображения и добавьте следующее:

UIImageView *logoView = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"Logo.png"]];
logoView.backgroundColor = [UIColor clearColor];
[self.view addSubview:logoView];
0 голосов
/ 04 июля 2011

Сбой setOpaque: НЕТ ... проверьте, правильно ли экспортировано и не повреждено ли ваше изображение и т. Д., Что случилось со мной однажды

0 голосов
/ 04 июля 2011

Установите для свойства вашего представления непрозрачное значение no.как это [посмотреть setOpaque: NO];

...