Как сделать полупрозрачный UITableViewCells? - PullRequest
2 голосов
/ 05 декабря 2010

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

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

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;

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

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

Ответы [ 3 ]

2 голосов
/ 06 июня 2011

Чтобы сделать ваш 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];

Это будет работать .. Приветствия ..

1 голос
/ 05 января 2015

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

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 для белого цвета, и ваша непрозрачность была очень высокойтак что это выглядело серым цветом, на самом деле это был черный с непрозрачностью.Надеюсь, это поможет:)

0 голосов
/ 05 декабря 2010

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

...