Как сделать UITableViewCells полупрозрачным?

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

Из следующей темы я знаю, как сделать прозрачную ячейку.

прозрачный фон UITableViewCell (включая imageView / accessoryView)

Я пробовал выше, это сработало. Но когда я добавляю следующий код:

UIView *backView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
backView.backgroundColor = [UIColor colorWithRed:.1 green:.1 blue:.1 alpha: .4];
cell.backgroundView = backView;

Ячейка стала серого цвета без какой-либо прозрачности, если я изменю код следующим образом,

UIView *backView = [[UIView alloc] initWithFrame:CGRectZero];
backView.backgroundColor = [UIColor clearColor];
cell.backgroundView = backView;

Клетка стала белой, все еще непрозрачной.

Кто-нибудь может дать мне какие-нибудь подсказки?


person user497032    schedule 05.12.2010    source источник


Ответы (3)


Чтобы сделать ваш UITableViewCells полупрозрачным, который является полупрозрачным, вы должны сделать свой UITableViewCells прозрачным, а затем установить backgroundView ячейки на изображение с полупрозрачными свойствами. Также установите selectedBackgroundView ячейки на изображение, которое является полупрозрачным и дает эффект выбранной ячейки.

UIView *backView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
backView.backgroundColor = [UIColor clearColor];
cell.text.backroundColor = [UIColor clearColor]; //if you have labels on cells..
cell.backgroundView = backView;

Затем установите изображение с эффектом полупрозрачности на нашу прозрачную ячейку.

UIImageView *cellImage = [[UIImageView alloc] init];
[cellImage setImage:[UIImage imageNamed: @"unselectedCellImage.png"]];
[cell setBackgroundView:cellImage];
[cellImage release];

Затем установите изображение для выбранной ячейки, чтобы получить эффект полупрозрачности и после выделения.

UIImageView *cellImageSelection = [[UIImageView alloc] init];
[cellImageSelection setImage:[UIImage imageNamed: @"selectedCellImage.png"]];
[cell setSelectedBackgroundView:cellImageSelection];
[cellImageSelection release];

Будет работать .. Ура ..

person Jazz Madahar    schedule 06.06.2011

Вы можете попробовать это

UIView *backView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
backView.backgroundColor = [UIColor colorWithRed:255 green:255 blue:255 alpha: .2];
cell.backgroundView = backView;

Что вы сделали неправильно, так это то, что вы выбрали .1 .1 .1, который для черного цвета, вам нужно 255 255 255 255 для белого цвета, и ваша непрозрачность была очень высокой, поэтому вам он казался серым цветом, на самом деле он был черным с непрозрачностью. Надеюсь это поможет :)

person Aadil Keshwani    schedule 05.01.2015

По умолчанию представления инициализируются как непрозрачные, поэтому вам, вероятно, потребуется явно установить backView.opaque = NO;, чтобы он рисовал с любой прозрачностью.

person Justin Spahr-Summers    schedule 05.12.2010
comment
Я добавил backView.opaque = NO, но он не работает. Есть другие предложения? - person user497032; 06.12.2010
comment
Вы все еще устанавливаете backgroundColor ячейки на [UIColor clearColor]? - person Justin Spahr-Summers; 06.12.2010