UITableView - выделение выделенной ячейки [iOS]

Я создал UITableView с настройкой TableCell, обычно следуя этому руководству;

http://www.theappcodeblog.com/?p=353

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

cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.selectionStyle = UITableViewCellSelectionStyleBlue;
cell.selectionStyle = UITableViewCellSelectionStyleGray;

Очевидно, что если выбрано серым, то такое же поведение происходит, но с серым уродливым ящиком. "None" является желательным вариантом в минуту, но не дает хорошего опыта для моих пользователей, поскольку я хотел бы дать некоторые указания, что они выбрали эту строку.

Может ли кто-нибудь предложить способ показать, что строка highligted, но все же показывать текст под ним? Полупрозрачность?

Спасибо

Ответ 1

Возможно, это потому, что ваш пример кода:

artistLabel.highlightedTextColor = [UIColor clearColor];.

Это приведет к тому, что цвет текста artistLabel станет прозрачным, когда он будет выделен.

Из-за этого вы можете установить свой собственный цвет в свойстве highlightTextColor ваших меток, например:

[UIColor whiteColor]

Ответ 2

Ячейка UITableView выбрана Цвет

Enjoy...

// Image
UIImage *selectionBackground = [UIImage imageNamed:@"g7.png"];
UIImageView *bgview=[[UIImageView alloc] initWithImage:selectionBackground];
cell.selectedBackgroundView=bgview;
[bgview release];

или

// Color
UIView *bgColorView = [[UIView alloc] init];
[bgColorView setBackgroundColor:[UIColor brownColor]];
[cell setSelectedBackgroundView:bgColorView];
[bgColorView release];

Ответ 3

u может использовать собственный вид настройки пользователя для выбора

здесь у меня есть зеленый цвет. Например, это может изменить любую настройку, которую вы хотите на этом.

if (cell == nil) {

    cell = [[[UITableViewCell alloc] initWithFrame: CGRectZero 
                                   reuseIdentifier: CellIdentifier] autorelease];


    UIView *selectionView = [[UIView alloc]initWithFrame:cell.bounds];

    [selectionView setBackgroundColor:[UIColor greenColor]];

    cell.selectedBackgroundView = selectionView;


    [selectionView release];

}