使用自定义选择颜色和边框创建分组的UITableviewCell

时间:2012-03-07 13:46:09

标签: ios ios5 uitableview

我正在编写一个应用程序,它在分组表视图中使用不同的选择颜色。就边界来说,这很有效。 我可以使用此帖子中的代码更改选择颜色: How to customize the background/border colors of a grouped table view cell?

但是我想在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];

正如你所看到的,除了第二个Cell周围的灰色边框外,我几乎能正常工作。

2 个答案:

答案 0 :(得分:2)

在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设置边框(也许这就是你想要做的)

答案 1 :(得分:0)

我找到了解决方法。它并不完全相同(分组样式中的UITableviewCell在iOS5中得到了更复杂的设计,但这对我来说已经足够了。我借用了这个方法来自 http://cocoawithlove.com/2010/12/uitableview-construction-drawing-and.html

它很棒!

我使用的代码是:http://www.mediafire.com/?mdxkpfe8g74ctk9

希望这有助于其他人