Я прочитал и попробовал несколько ответов, которые нашел на StackOverflow. Я также читал и пробовал кое-что из блогов, но, похоже, ничего не дает того, что я ищу.
Я создаю UIView
и устанавливаю цвет фона на желаемый UITableViewCell
цвет выделения(вместо стандартных синего или серого цветов выделения). Я добавляю это UIView
к моей ячейке selectedBackgroundView
, и это работает нормально, моя ячейка меняет цвет на желаемый при выборе пользователя.
Этот метод прекрасно работает на Plain UITableViews
; не так хорошо на Grouped. В сгруппированном UITableView
1-я и последняя ячейка не соответствуют границам клипа/маски, как показано на снимках экрана ниже.
Я знаю, что невозможно скруглить только верхний -левый и верхний -правый углы.
Я хочу сделать это строго по коду, без изображений.
Кто-нибудь знает хороший небольшой обходной путь для изменения selectedBackgroundView
цвета UITableViewCell
, используя только UIView
, а не изображения, И чтобы первая и последняя ячейки соответствовали закругленному углу границы?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString * CellIdentifier = @"Cell";
WCSBadgedCell * cell = [[WCSBadgedCell alloc] initWithStyle:UITableViewCellStyleSubtitle andBadgeStyle:0 reuseIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[WCSBadgedCell alloc] initWithStyle:UITableViewCellStyleDefault andBadgeStyle:0 reuseIdentifier:CellIdentifier];
}
UIView *bgColorView = [[UIView alloc] init];
[bgColorView setBackgroundColor:DARKBROWN];
[bgColorView setClipsToBounds: YES];
[cell.layer setMasksToBounds:YES];
[cell setSelectedBackgroundView:bgColorView];
[cell.textLabel setText: @"Testing a Cell"];
return cell;
}
Я принял ответ CodaFis , потому что он добавил комментарий, указывающий на довольно хорошее (, но длинное)решение. Мне пришлось немного переделать, но, в конце концов, теперь у меня есть нужные мне selectedBackgroundView, которые закругляют углы в 1-й и последней ячейках, еще раз спасибо!