11

separatorColoriOS 7 でテーブル ビューに赤を設定し、さらにseparatorInsettoUIEdgeInsetsZeroまたはその他のカスタム インセット値を設定すると、すべての追加または「余分な」行にデフォルトの色分けされたセパレーターが表示されます。どうすればこれを修正できますか?

ドキュメントの最後の文は、separatorInset何らかの方法で余分なレコードを制御することを意味しますが、方法がわかりません:

iOS 7 以降では、セル セパレータはテーブル ビューの端まで拡張されません。rowHeightこのプロパティは、セルの既定の高さを設定するのと同様に、テーブル内のすべてのセルの既定のインセットを設定します。また、プレーン スタイル テーブルの下部に描画される「余分な」セパレータを管理するためにも使用されます。

セパレーターを設定しviewDidLoadます:

self.tableView.separatorColor = [UIColor redColor];

そして、あなたはこれを得る:

ここに画像の説明を入力

separatorInsetと色を設定すると、次のようになります。

self.tableView.separatorInset = UIEdgeInsetsZero;    // <- any custom inset will do
self.tableView.separatorColor = [UIColor redColor];

あなたはこれを得る:

ここに画像の説明を入力

なぜこれが起こるのですか?また、すべてのセパレーターを赤くして、すべてのセパレーターのインセットをゼロに設定するにはどうすればよいですか? これはバグですか?

4

2 に答える 2

21

解決しましたが、理由を説明できません。

2 つのステートメントの順序を入れ替えます。最初に色を設定し、次にインセットを設定します:

self.tableView.separatorColor = [UIColor redColor];
self.tableView.separatorInset = UIEdgeInsetsZero;

すべてが機能します:

ここに画像の説明を入力

于 2013-10-01T22:36:26.403 に答える
2

これを cellForRowAtIndexPath に追加してみてください。tableViewのseparatorInsetsを設定するだけでなく。

cell.separatorInset = UIEdgeInsetsZero;

UITableViewCell iOS ドキュメントから:

@property (非アトミック) UIEdgeInsets separatorInset

セルのコンテンツの挿入値。

このプロパティを使用して、現在のセルの内容とテーブルの左右の端の間にスペースを追加できます。正のインセット値を指定すると、セルの内容とセル区切りが内側に移動し、テーブルの端から離れます。負の値は、インセットが 0 に設定されているかのように扱われます。

于 2014-04-09T20:05:58.800 に答える