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 ピクセルで色が黒色の 2 つの黒い境界線を追加します。それが役に立てば幸い。

于 2013-07-19T13:08:48.377 に答える