2014-09-12 62 views
0

我有一個tableview,並從應用程序的不同部分tableviewcell。我怎麼知道這個單元格是由tableview顯示的?如何驗證UIView已顯示

我知道,通過檢查 如果(view.window!=無){// 做的東西 }

和 如果(!view.hidden) {// 做的東西 }

在tableviewcontroller中,我可以驗證視圖確實顯示在單元格中。但是,有兩個問題:

  • 我依靠tableviewcontroller對上述checkes

  • 我會實現我自己NSNotification或委託回調到視圖的tableviewcell顯示。

是否有任何其他的方式來實現這一點,例如,像UIDeiwController viewdidappear?

+0

我使用UIView的superview屬性。它似乎到目前爲止檢測正確:https://developer.apple.com/library/ios/documentation/uikit/reference/uiview_class/uiview/uiview.html – EmilyJ 2014-09-12 20:26:26

+0

你會如何實現它?通過使用:view.superview == nil? – NSCoder 2014-09-12 21:50:04

回答

0

您可以隨時可見單元使用[_tableView visibleCells];

  1. 在那裏你已載入每個單元添加endries你可以使用一個NSIndexSet。在單元的init方法中執行此操作。
  2. 或者你可以在單元中設置一個委託,並告訴你的視圖控制器何時被初始化。
+0

謝謝@freshking。我的問題是我不擁有單元格或tableview。我想我可以使用你的第二個建議,但只能在視圖中設置委託(我生成視圖),並讓單元調用委託方法。根本問題仍然是我必須相信單元格或tableview才能在適當的時候調用委託方法。 – NSCoder 2014-09-12 18:54:49

+0

我不認爲這是一個問題。如果您正確設置委託,一旦加載視圖,它肯定會被調用。 – freshking 2014-09-12 22:31:40