web-dev-qa-db-ja.com

UITableViewセパレーターのインセット領域の色を変更する

カスタマイズしたUITableViewがあります。セルの背景色は異なります(カスタムbackgroundViewで設定)。ただし、背景色はセルのwithinにのみ適用され、セパレータの挿入領域にはextendedは適用されません。スクリーンショットでわかるように、色付きのセパレーターの左側に白い領域があります。

この白い線の色をどのように変更できますか?セルの背景と同じ色に設定して、ラインを「非表示」にします。ありがとう!

enter image description here

40
zavié

セルの背景色をcontentViewの背景色と同じに設定すると、最良の結果が得られるようです。

cell.backgroundColor = cell.contentView.backgroundColor;

これにより、accessoriesViewの色が正しくない場合も処理されます。

49
Dave Wood

だから私は自分でこの問題を抱えていました、そしてそれはいくつかのテーブルビューではうまくいくように見えるので奇妙です。私はあなたが使用している灰色があなたのテーブルビューの背景色であると仮定しています。そうでない場合、このソリューションは機能しない可能性があります。

IOS 7のセルは、セパレーターインセットが存在する場合、常にテーブルビューの背景色を取得するとは限らないため、セルの背景を手動でclearColorに設定する必要があります。興味深いことに、ストーリーボードでこの値を設定してもうまくいきませんでした。コードで行う必要がありました。これを追加:

cell.backgroundColor = [UIColor clearColor];

このデリゲート関数でセルを構成すると、次のようになります。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
5
jzn

これは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
4
user2223516

セパレータに画像を使用します。これは、期待される結果を達成するための唯一の簡単な方法です。 xibのios 7にはEdge昆虫プロパティがあり、使用できます。

0
Ron

ストーリーボード>属性インスペクター>セパレーターインセットに移動し、カスタムを選択して左座標を15から0に変更します。これは完了です。

0
Ankit Jayaswal

UITableViewCellのインターフェイスビルダーで、属性 'background'をクリア(または何でも)に設定し、コンテンツビューで属性 'background'もクリアに設定すれば、問題は解消されます。

0
Tim Teece

これは私のために働いた唯一の方法です...(セパレーター=ストーリーボード経由でなし)

enter image description here

0
Jase Whatson