Редактируется только нижний фон таблицы. - PullRequest
1 голос
/ 31 августа 2011

Когда я меняю backgroundView, редактируется только нижняя ячейка моего UITableView. Я хочу один и тот же фон для каждой ячейки. Но топ 3 белые, а последний - изображение. Я не знаю, почему это так. Вот мой код под tableView cellForRowAtIndexPath:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"];

if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MyIdentifier"];

}

[cell setBackgroundView:backgroundImage];
[cell.detailTextLabel setFont:[UIFont boldSystemFontOfSize:15]];
[cell.detailTextLabel setTextColor:[UIColor blackColor]];

[cell.textLabel setFont:[UIFont systemFontOfSize:10]];
[cell.textLabel setTextColor:[UIColor darkGrayColor]];

cell.detailTextLabel.text = [packArray objectAtIndex:[indexPath row]];
cell.textLabel.text = @"Soleternity Productions";
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
cell.textLabel.shadowColor = [UIColor grayColor];
cell.detailTextLabel.shadowColor = [UIColor grayColor];
cell.textLabel.backgroundColor = [UIColor clearColor];
cell.detailTextLabel.backgroundColor = [UIColor clearColor];

return cell;

1 Ответ

1 голос
/ 31 августа 2011

Концепция проста.Если вы добавите представление X в качестве subView другого представления A, тогда A будет содержать представление X.Позже, если вы добавите то же представление X в другое представление B, тогда X будет сначала удалено из A и добавлено к B.Это то, что здесь происходит.

Здесь вы видите backgroundImage и назначаете его как backgroundView всех ячеек.Таким образом, очевидно, что последняя назначенная ячейка будет содержать backgroundImage.

. Вы должны создать новые представления в методе cellForRowAtIndexPath: и назначить его текущей ячейке.

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