TableView, как изменить ячейку по умолчанию синий цвет - PullRequest
2 голосов
/ 15 марта 2012

Когда я нажимаю на ячейку в UITableViewCell, ячейка становится синей по умолчанию.Как мне это изменить?Изменение в другой цвет или в этом образце, который я строю, избавиться от цвета полностью.У меня есть таблица, которая является просто таблицей, информация находится в ячейке, и она никуда не ведет при нажатии.Просто раздражает, что при нажатии становится синим, потому что текст в ячейке труднее читать.

Ответы [ 4 ]

8 голосов
/ 15 марта 2012

в

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

метод добавить этот код

    cell.selectionStyle = UITableViewCellSelectionStyleNone;
2 голосов
/ 15 марта 2012

Следующие возможности изменить стиль выбора uitableviewcell по моему.

  • Это доступные по умолчанию стили.

    cell.selectionStyle = UITableViewCellSelectionStyleBlue;
    
    cell.selectionStyle = UITableViewCellSelectionStyleGray;
    
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    
  • Но если вы хотите изменить стиль, вы также используете следующее.

    cell.backgroundColor = [UIColor colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha];
    
    cell.backgroundColor = [UIColor colorWithPatternImage:(UIImage *)image];  
    

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

Для выбранного стиля ячейки вы можете использовать это.

cell.selectedBackgroundView = [[[UIImageView alloc] initWithImage:(UIImage *)image] autorelease];
1 голос
/ 15 марта 2012

Изменение свойства selectedBackgroundView является правильным и простым способом. Я использую следующий код, чтобы изменить цвет выделения:

// установить цвет выделения

UIView *myBackView = [[UIView alloc] initWithFrame:cell.frame];
myBackView.backgroundColor = [UIColor colorWithRed:1 green:1 blue:0.75 alpha:1];
cell.selectedBackgroundView = myBackView;
[myBackView release];

или вы можете использовать это ..

Вот наиболее эффективный способ решения этой проблемы, с которым я столкнулся, используя метод делегата willDisplayCell (он учитывает белый цвет фона текстовой метки, а также при использовании cell.textLabel.text и / или ячейки. detailTextLabel.text):

(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { ... }

Когда вызывается этот метод делегата, цвет ячейки контролируется через ячейку, а не в виде таблицы, как при использовании:

(UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath { ... }

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

if (indexPath.row % 2)
{
        [cell setBackgroundColor:[UIColor colorWithRed:.8 green:.8 blue:1 alpha:1]];
}
else [cell setBackgroundColor:[UIColor clearColor]];
0 голосов
/ 02 августа 2013

Используйте следующий код для удаления цвета по умолчанию при выборе ячейки:

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