5

いくつUITableViewかの空のセクションがあります。ユーザーが標準の編集モード コントロールを使用して行を移動できるようにしたいと考えています。これまでにできる唯一の方法は、「空の」セクションにダミー行を配置tableView:heightForRowAtIndexPath:し、ダミー行の高さをゼロにすることで非表示にすることです。これにより、1ピクセルの行のままになるようです。で満たされた特別なタイプのセルを作成することでおそらくこれを隠すことができます[UIColor groupTableViewBackgroundColor]が、より良い方法はありますか?

これはすべて のグループ化モードにありUITableViewます。

更新:行を空のセクションに移動することはトリックなしで可能であるように見えますが、「感度」は十分に悪いため、一般ユーザーが使用できるようにするためにトリックが必要です(行をゆっくりと移動するのに十分な忍耐力がない人)カチッと音がするまで空のセクションの周りを回します)。

4

3 に答える 3

1

iOS 4.3 では、行をそのセクションに移動できるという望ましい効果を得るには、ダミー行の高さが少なくとも 1 ピクセルである必要があることがわかりました。

また、ダミー行は最初と最後のセクションでのみ必要であることがわかりました。間にあるセクションにはこの問題はありません。

iOS 5.0 では、ダミー行や特別なトリックはまったく必要ないようです。

于 2011-12-20T01:22:29.057 に答える
0

heightForRowAtIndexPathメソッドから-1.0を返すと、1ピクセルの線が削除されることがわかりました。

于 2011-01-08T12:16:56.633 に答える
0

編集を管理している間、テーブル ビューが編集モードになっているかどうかを監視できます。の中でそのフラグを使用して、cellForRowAtIndexPath天気を決定するか、「空白」行を表示しないようにします。「通常」モードでは行は表示されませんが、ユーザーが「編集」をタップすると cellForRowAtIndexPath が再度呼び出され、今度は行を表示することを決定します。その方法の詳細は、データ ソースと、それをディスプレイに貼り付ける方法によって異なります。呼び出しが再度得られない場合は、insertRowsAtIndexPaths/deleteRowsAtIndexPathsおよび/または呼び出しreloadDataを使用して手動で行を挿入して、強制的に更新できます。

于 2009-03-17T16:24:26.140 に答える