Создайте сгруппированный UITableviewCell с пользовательским выбором Color и Border - PullRequest
1 голос
/ 07 марта 2012

В настоящее время я пишу приложение, которое использует разные цвета выбора в сгруппированном табличном представлении. Это прекрасно работает, насколько это касается границ. Я могу изменить цвет выделения с помощью кода в этом сообщении: Как настроить цвета фона / границы ячейки сгруппированного табличного представления?

НО Я хотел бы дополнительно иметь красивую границу вокруг ячеек, которую использует Apple. Как я могу использовать эту границу?

http://www.mediafire.com/?x2gxbkjqu4d2zto

Это код для создания фона - в основном скопированный сверху Post: http://www.mediafire.com/?kltwlni1mf4t7ks

И вот как я это использую:

NSIndexPath * indexPath = [[[NSIndexPath alloc] initWithIndex:0] indexPathByAddingIndex:1];
CGRect frame = [[self tableView] rectForRowAtIndexPath:indexPath];
TLCustomCellBackgroundView * selectedBackgroundView = [[TLCustomCellBackgroundView alloc] initWithFrame:frame andColor:[UIColor redColor]];
[selectedBackgroundView setPosition:CustomCellBackgroundViewPositionBottom];
[[[self tableView] cellForRowAtIndexPath:indexPath] setSelectedBackgroundView:selectedBackgroundView];

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

Ответы [ 2 ]

2 голосов
/ 07 марта 2012

в cellForRowAtIndexPath вы можете установить Границы (Разделитель) для каждой строки / раздела.

 if(indexPath.row == 1)
    [tableView setSeparatorColor:[UIColor redColor]];

 if(indexPath.section == 2)
    [tableView setSeparatorColor:[UIColor greenColor]];

Просто не забудьте установить / сбросить это значение для каждой строки / раздела, которое вам нужно.

Если вы хотите добавить серую рамку вокруг красной ячейки, это будет

if(indexPath.section == 0 && indexPath.row == 1){
//assuming this is the correct index)  
   [tableView.separatorColor = [UIColor  colorWithRed:0.67 green:0.67 blue:0.67 alpha:1];
}
else
{
   [tableView.separatorColor = [UIColor yourChosenDefaultColor]];
}

. На самом деле вам нужно использовать это в вашем cellForRowAtIndexPath, или вы собираетесь установить границу для всего вашего TableView (возможно, вот чтоты хочешь сделать)

0 голосов
/ 08 марта 2012

Я нашел решение для этого.это не совсем то же самое (поскольку UITableviewCell в сгруппированном стиле получил еще более сложный дизайн в iOS5, но этого достаточно для меня. Я заимствовал этот подход из http://cocoawithlove.com/2010/12/uitableview-construction-drawing-and.html

, и он прекрасно работает!

Код, который я использовал: http://www.mediafire.com/?mdxkpfe8g74ctk9

Надеюсь, это поможет другим

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