2011-06-16 102 views
1

也許我錯過了一些明顯的東西,但我很難以編程方式在tableView中設置行選擇。目標是簡單地打開一個tableView,並選擇一行。問題似乎是我必須等到tableView完全加載後才能修改選擇。UITableView初始行選擇

我已經閱讀了各種策略,例如在viewController的viewWillAppear方法中調用tableView的reloadData,然後立即調用selectRowAtIndexPath作爲目標行。但是當我這樣做時,我得到一個範圍異常,因爲tableView在那一點上有零行。 UITableViewDelegate方法(numberOfRowsInSection等)似乎不會立即響應reloadData調用(如果表格行是「延遲繪製」的話,這是有意義的)。

我一直能夠得到這個工作的唯一方法是在短暫的延遲後調用selectRowAtIndexPath,但是您可以參見 tableView將選定的行滾動到視圖中。

當然,這樣做有更好的方法嗎?

回答

0

那麼,你可以使用另一種策略。您可以創建隱藏表格視圖,配置您想要的方式並向用戶展示。使用tableview.hidden = YES

+1

我認爲(隱藏tableView直到完全配置),但是你必須弄清楚tableView是否完成加載(即何時取消隱藏)。似乎應該有一個更簡單的方法。要查看我想要實現的示例,請查看iPad上的Mail應用程序。當您以縱向方式單擊文件夾按鈕時,會彈出一個彈出式窗口,並在tableView中突出顯示選定的消息行。 – Roberto 2011-06-16 20:23:42

+0

作爲「隱藏然後顯示」策略的後續:它排序*作品,但在表格視圖突然出現之前您會看到背景的「閃光」 - 不理想。 – Roberto 2011-06-16 22:58:48