カスタマイズしたUITableViewがあります。セルの背景色は異なります(カスタムbackgroundViewで設定)。ただし、背景色はセルのwithinにのみ適用され、セパレータの挿入領域にはextendedは適用されません。スクリーンショットでわかるように、色付きのセパレーターの左側に白い領域があります。
この白い線の色をどのように変更できますか?セルの背景と同じ色に設定して、ラインを「非表示」にします。ありがとう!
セルの背景色をcontentViewの背景色と同じに設定すると、最良の結果が得られるようです。
cell.backgroundColor = cell.contentView.backgroundColor;
これにより、accessoriesViewの色が正しくない場合も処理されます。
だから私は自分でこの問題を抱えていました、そしてそれはいくつかのテーブルビューではうまくいくように見えるので奇妙です。私はあなたが使用している灰色があなたのテーブルビューの背景色であると仮定しています。そうでない場合、このソリューションは機能しない可能性があります。
IOS 7のセルは、セパレーターインセットが存在する場合、常にテーブルビューの背景色を取得するとは限らないため、セルの背景を手動でclearColorに設定する必要があります。興味深いことに、ストーリーボードでこの値を設定してもうまくいきませんでした。コードで行う必要がありました。これを追加:
cell.backgroundColor = [UIColor clearColor];
このデリゲート関数でセルを構成すると、次のようになります。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
これはiOS 7のデフォルトですが、iOS 6の外観に変更できます。以下の私のコードを試してください。あなたは驚かれることでしょう:
tableView.separatorColor = [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
NSString *iosversion = [[UIDevice currentDevice] systemVersion];
int version = [iosversion intValue];
if(version>6)
{
tableView.separatorInset = UIEdgeInsetsZero;
}
Swift 3 +:
tableView.separatorInset = UIEdgeInsets.zero
セパレータに画像を使用します。これは、期待される結果を達成するための唯一の簡単な方法です。 xibのios 7にはEdge昆虫プロパティがあり、使用できます。
ストーリーボード>属性インスペクター>セパレーターインセットに移動し、カスタムを選択して左座標を15から0に変更します。これは完了です。
UITableViewCellのインターフェイスビルダーで、属性 'background'をクリア(または何でも)に設定し、コンテンツビューで属性 'background'もクリアに設定すれば、問題は解消されます。