2012-03-26 26 views
2

當我有一個UITableView具有多個部分,每個部分具有多個細胞與離散UIStepper對照。一旦點擊並按住每個單元的UIStepper同伴UILabel與當前UIStepper值更新,如需要。更新的UITableView節頭文字中使用UIStepper連續重複

這工作正常:保持UIStepper下降,它增加總數,更新UILabel,因爲它這樣做。

我想要的是每個部分的頭部將當前總計從該部分中的所有單元格中總計出來,並將該數字添加到標題文本中,從而爲用戶快速總結所有部分的單元格UIStepper值。

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

這也工作,使用[self.tableView reloadData] ;調用。

然而,只註冊在UIStepper製成每個離散的觸摸;似乎呼叫reloadData停止正在註冊的連續觸摸。這意味着要使標題中的總數與該部分單元格中增加的值保持同步,需要用戶每次觸摸單擊控件一次,而不是按住。

有整個「環」重裝單節的標題文本的任何方式,所以它跟蹤該用戶認爲他們的手指上的控制日益增加的價值?

回答

0

我會繼續給你所有有標題行,並在您遞增代碼直接調用方法,在標題視圖,而不是依靠表更新,以照顧它的參考。有兩種創建區段頭兩個主要選項:

  1. 初始化所有的人都在viewDidLoad並保持一個集中。然後在tableView:viewForHeaderInSection:中返回集合中該部分的適當實例。如果您知道您將提前準備多少部分,則此選項是最佳選擇。

  2. 懶洋洋地初始化它們在tableView:viewForHeaderInSection:和節號他們收集存儲。如果你有很多標題,並且你不想將它們保存在內存中,如果用戶沒有滾動,那麼這是你最好的選擇。

當您需要更新標頭時,將其從集合中拉出並對其調用一些遞增方法;如果它是可見的,它將立即更新,如果不是,它將在滾動到視圖時顯示正確的值。理想情況下,這些遞增的值被保存到某個模型對象!