30

以下UITableViewにはカスタムがUITableViewCellsあり、カスタムでこの行を使用してセパレーターを微調整できますUITableViewCell

self.separatorInset = UIEdgeInsetsMake(0, kDefaultSeparatorLeftInset, 0, 0);

ただし、セクションの下部にあるセルには、設定したカスタムUIEdgeInsetsをオーバーライドするデフォルトのセパレーターがあります。

すべてのセパレーターを同じ幅にしたいのですが、セパレーターを手動で再描画せずにこれを行う方法はありますか?

iOS7 のワイド セクション セパレータを使用した UITableView

4

4 に答える 4

12

いくつかの実験の後、唯一の本当の解決策は、に設定し、次を使用して空のフッターを設定することであることがわかりましUITableViewStyleUITableViewStylePlain

-(UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    return [[UIView alloc] initWithFrame:CGRectZero];
}

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
    return 0.01f;
}

UITableViewStylePlainのすべての機能を提供するわけではないため、これは一部の人にとって満足のいく解決策ではありませんUITableViewStyleGroupedが、全角セパレーターのないセクションが表示されます。

ここに画像の説明を入力

于 2013-10-18T11:06:57.790 に答える
4

いくつかの実験の後、私は解決策を見つけました!tableFooterView は、次のようにセパレーターで覆うことができます。

UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)];
UIView *v2 = [[UIView alloc] initWithFrame:CGRectMake(0, -1, 320, 2)];
v2.backgroundColor = [UIColor whiteColor];
v.backgroundColor = [UIColor whiteColor];
[v addSubview:v2];
self.tableView.tableFooterView = v;
于 2014-04-09T22:48:01.563 に答える
2

テーブルに空のフッターを与えます:

self.tableFooterView = [[UIView alloc] init]
于 2013-10-18T14:26:50.423 に答える
2

separatorInset個々のセルではなく、tableView 自体でプロパティを使用します。tableView のセパレーターインセットは、セルによってオーバーライドできるデフォルトのインセットと、下部の「余分な」セルのインセットを設定します。

于 2013-10-02T13:26:43.617 に答える