0

我正在尝试为 UITableViewCell 选择制作自定义颜色。当我按下它时,我不希望整个单元格突出显示,换句话说,选择背景的框架应该是(10,cell.frame.origin.y,300,cell.frame.size.height)。我尝试将 backgroundColorView.layer.borderWidth 属性的值设置为 10,但这会影响整个视图,而不仅仅是左右边框。这是我现在坚持的代码:

UIView *backgroundColorView = [[UIView alloc] init];
backgroundColorView.backgroundColor = SWITCH_COLOR_ON;
backgroundColorView.layer.masksToBounds = YES;
// backgroundColorView.layer.borderWidth = 10.0f; // this shrinks the entire view
[cell setSelectedBackgroundView:backgroundColorView];

关于如何完成这项工作的任何提示?谢谢。

4

1 回答 1

1

我认为最简单的解决方案是在视图中添加 2 层,如下所示:

CALayer *leftBorder = [CALayer layer];
[leftBorder setBackgroundColor:[[UIColor blackColor] CGColor]];
[leftBorder setFrame:CGRectMake(0, 0, 5, yourView.frame.size.height)];
[yourView.layer addSublayer:leftBorder];

CALayer *rightBorder = [CALayer layer];
[rightBorder setBackgroundColor:[[UIColor blackColor] CGColor]];
[rightBorder setFrame:CGRectMake(yourView.frame.size.width-5, 0, 5, yourView.frame.size.height)];
[yourView.layer addSublayer:rightBorder];

此代码添加两个 5 像素宽度和黑色的黑色边框。希望能帮助到你。

于 2013-07-19T13:08:48.377 回答