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

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

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

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

Очевидно, что при выборе серого цвета происходит то же самое, но с серым уродливым прямоугольником. «Нет» - желательный вариант в данный момент, но он не дает хороших впечатлений моим пользователям, поскольку я хотел бы указать, что они выбрали эту строку.

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

Благодарность

10
Paul Morris 29 Авг 2011 в 12:25

3 ответа

Лучший ответ

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

artistLabel.highlightedTextColor = [UIColor clearColor];.

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

Конечно, вы можете установить свой собственный цвет для свойства highlightedTextColor ваших ярлыков, например:

[UIColor whiteColor]

11
xuzhe 29 Авг 2011 в 08:32

Цвет выделенной ячейки UITableView

Наслаждайтесь ...

// 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];
8
iSavaDevRU 1 Фев 2012 в 23:50

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

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

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];

}
4
Vijay-Apple-Dev.blogspot.com 29 Авг 2011 в 08:40