Осветите решение для рисования прямоугольников ячеек
Как настроить цвета фона/границы ячейки сгруппированной таблицы?
После прочтения этого сообщения я попытался использовать это решение. Вот мой код в методах tableViewDelegate:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
CustomCellBackgroundView *customBackground = [CustomCellBackgroundView alloc];
[customBackground setBorderColor:[UIColor blackColor]];
[customBackground setFillColor:[UIColor redColor]];
[customBackground setPosition:0]; //i'll deal with that later
[cell setSelectedBackgroundView:customBackground];
[customBackground release];
UIImageView* selectedBackgroundCell = [[[UIImageView alloc] initWithFrame:CGRectNull] autorelease];
[selectedBackgroundCell setImage:[UIImage imageNamed:@"cell_bg_50_hover.png"]];
[customBackground drawRect:selectedBackgroundCell.frame];
[cell setSelectedBackgroundView:selectedBackgroundCell];
//standard background color
[cell setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"cell_bg_50.png"]]];
}
Но, к сожалению, это ничего не меняет. Знаете ли вы, что я делаю неправильно?
Ответы
Ответ 1
Я считаю, что всякий раз, когда вы делаете представления, вы должны указать для этого некоторый фрейм.
Поэтому задайте рамку CGRectZero как для фона, так и для фона....
После всего лишь работы для меня, когда я тестировал.
UIView * bkview = [[[UIView alloc] initWithFrame: CGRectZero] autorelease];
bkview.backgroundColor = [UIColor redColor];
cell.selectedBackgroundView = bkview;
Код>
Ответ 2
Вы отпускаете customBackground, а затем вы вызываете [customBackground drawRect: selectedBackgroundCell.frame];
Очевидно, что вызов функции на указателе nil ничего не сделает.