UITableView - выделение выделенной ячейки [iOS] - PullRequest
10 голосов
/ 29 августа 2011

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

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

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

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

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

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

Спасибо

Ответы [ 3 ]

11 голосов
/ 29 августа 2011

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

artistLabel.highlightedTextColor = [UIColor clearColor];.

Это приведет к тому, что цвет текста artistLabel станет прозрачным, когда он будет выделен.Вы можете установить свой собственный цвет для свойства selectedTextColor ваших ярлыков, например:

[UIColor whiteColor]

8 голосов
/ 02 февраля 2012

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];
4 голосов
/ 29 августа 2011

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

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

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

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...