2012-03-26 6 views
2

を使用する場合のUITableViewセクションヘッダテキストの更新Iは、それぞれ別個UIStepperコントロールで複数のセルを有し、複数のセクションを持つUITableViewを有します。必要に応じて各セルのUIStepperコンパニオンUILabelをタップして保持されると、現在のUIStepper値で更新されます。UIStepper連続リピート

これは正常に動作しています。UIStepperを押し下げて合計を増やし、UILabelを更新します。

私が欲しいのは、各セクションのヘッダーがそのセクション内のすべてのセルから現在の合計を合計し、ヘッダーテキストにその数値を追加して、ユーザーにすべてのセクションのセルUIStepperの値の合計を与えることです。 [self.tableView reloadData] ;コールを使用して、あまりにも働いて

 
==================== 
Section Total: 12 
==================== 
Cell: 3 | - | + | 
-------------------- 
Cell: 5 | - | + | 
-------------------- 
Cell: 4 | - | + | 
==================== 
Section Total: 9 
==================== 
Cell: 1 | - | + | 
-------------------- 
Cell: 2 | - | + | 
-------------------- 
Cell: 6 | - | + | 

しかし、それだけUIStepperで行わ各離散タッチレジスタ。 reloadDataコールが登録されている連続タッチを停止するように見えます。これは、そのセクションのセルの増加する値と同期してヘッダーの合計を維持することを意味します。ユーザーは、押したままではなく、一度に1つのタップをコントロールに触れ続ける必要があります。

「ループ」全体で単一セクションのヘッダーテキストをリロードする方法はありますので、ユーザーがコントロールの上に自分の指を保持しているとして、増加する値を追跡しますか?

答えて

0

私はあなたが持っているセクションヘッダのすべてに直接代わりにそれの世話をするために、テーブルの更新に頼るのヘッダビュー上の増分コードの呼び出し方法で参照を続けるだろう。セクションヘッダを作成するには、2つの主要なオプションがあります。

  1. viewDidLoadでそれらのすべてを初期化し、コレクションに保管してください。次に、tableView:viewForHeaderInSection:で、そのセクションの適切なインスタンスをコレクションから返します。このオプションは、いくつのセクションを前もって持っているか分かっている場合に最適です。

  2. 怠惰tableView:viewForHeaderInSection:でそれらを初期化し、セクション番号でコレクションに格納します。ヘッダーがたくさんあり、ユーザーがスクロールしていない場合にそれらを保持したくない場合は、これが最善の策です。

ヘッダーを更新する必要がある場合は、ヘッダーをコレクションから取り出して、それを増分するメソッドを呼び出します。表示されている場合は直ちに更新され、表示されない場合はスクロールされて表示されます。理想的には、これらのインクリメントされた値は、モデルオブジェクトのどこかに保持されます。