Настройка фонового изображения для пользовательских ячеек табличного представления - PullRequest
2 голосов
/ 16 февраля 2010

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

1- In IB setting the image field
2- cell.contentView.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"list.png"]];
3- cell.imageView.image = [UIImage imageNamed:@"list_selected.png"];

Кажется, что все не получается.Настройка изображения для выбранной ячейки работает, но не для невыбранной ячейки.Кто-нибудь есть идеи, что здесь может быть не так?

Спасибо

Ответы [ 5 ]

19 голосов
/ 16 февраля 2010

Попробуйте установить backgroundView для imageView изображения.

Пример кода от Джейсона Мура (с поправкой Тома):

cell.backgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"foo.png"]] autorelease];
3 голосов
/ 03 февраля 2013

cell.backgroundImage больше не существует. Вместо этого используйте:

cell.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"foo.png"]];

http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewCell_Class/Reference/Reference.html

2 голосов
/ 16 февраля 2010

Я делал это, используя следующий метод UITableViewDelegate и устанавливая свойство cell.backgroundColor. Он вызывается последним, непосредственно перед тем, как ячейка будет фактически нарисована на экране:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row%2)
    cell.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"TableCell-BG-Dark.png"]];
else 
    cell.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"TableCell-BG-Light.png"]];

}

И да, я использую пользовательский подкласс UITableViewCell.

1 голос
/ 16 февраля 2010

попробуйте сделать это:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:DateCellIdentifier];
        if (cell == nil) {
            cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:DateCellIdentifier] autorelease]
            UIImageView* img = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"gradient.png"]];
            [cell setBackgroundView:img];
            [img release];
        } 
        cell.textLabel.text = @"Text";
}
0 голосов
/ 16 февраля 2010

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

if (indexPath.row % 2 == 0) {
    cell.contentView.backgroundColor = [UIColor colorWithWhite:230.0/255 alpha:1];
} else {
    cell.contentView.backgroundColor = [UIColor colorWithWhite:242.0/255 alpha:1];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...