ストーリーボードで行われた4つのセクションに静的セルを持つ UITableView があります。ただし、1 つのセクション ([UIColor clearColor]) の区切りの色を変更したい。どうやってやるの???それは実際に可能ですか?
特定の 1 つのセクションだけでなく、表全体に対してセパレーター色を clearColor に設定できます。
テーブル ビュー セクションのスクリーンショット:
ストーリーボードで行われた4つのセクションに静的セルを持つ UITableView があります。ただし、1 つのセクション ([UIColor clearColor]) の区切りの色を変更したい。どうやってやるの???それは実際に可能ですか?
特定の 1 つのセクションだけでなく、表全体に対してセパレーター色を clearColor に設定できます。
テーブル ビュー セクションのスクリーンショット:
AFAIKこれには方法がありません。ただし、下部にセパレータがあるセルに背景画像を配置し、separatorstyleをUITableViewCellSeparatorStyleNoneに設定できます。したがって、すべてのセルに独自のセパレータがあります。
セクションのヘッダーテキストを空の文字列に設定することで、目標を達成できるかもしれません。
1 つのアプローチは、独自のUIView
サブクラスを作成し、独自のカスタム描画をdrawRect:
. このビューを取得してbackgroundView
、テーブル ビュー セルの として追加します。このようなもの:
- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];
// Drawing code
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 1.0);
// Draw black line
CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
CGFloat components[] = {0.0, 0.0, 0.0, 0.3};
CGColorRef blackColor = CGColorCreate(colorspace, components);
CGContextSetStrokeColorWithColor(context, blackColor);
CGContextMoveToPoint(context, 0, rect.size.height - 1.5);
CGContextAddLineToPoint(context, rect.size.width, rect.size.height - 1.5);
CGContextStrokePath(context);
CGColorRelease(blackColor);
// Draw white bottom line
CGFloat whiteComponents[] = {1.0, 1.0, 1.0, 0.75f};
CGColorRef whiteColor = CGColorCreate(colorspace, whiteComponents);
CGContextSetStrokeColorWithColor(context, whiteColor);
CGContextMoveToPoint(context, 0, rect.size.height - 0.5);
CGContextAddLineToPoint(context, rect.size.width, rect.size.height - 0.5);
CGContextStrokePath(context);
CGColorRelease(whiteColor);
// Draw top white line
CGFloat whiteTransparentComponents[] = {1.0, 1.0, 1.0, 0.45};
CGColorRef whiteTransparentColor = CGColorCreate(colorspace, whiteTransparentComponents);
CGContextSetStrokeColorWithColor(context, whiteTransparentColor);
CGContextMoveToPoint(context, 0, 0.5);
CGContextAddLineToPoint(context, rect.size.width, 0.5);
CGContextStrokePath(context);
CGColorRelease(whiteTransparentColor);
CGColorSpaceRelease(colorspace);
}