Почему willDisplayCell не вызывается второй раз - PullRequest
0 голосов
/ 11 октября 2018

У меня есть контроллер представления с таблицей.Когда ячейка создается и представляется в первый раз, следующие функции вызываются в порядке (в дополнение к просмотру функций контроллера):

....
func viewWillAppear(_ animated: Bool)

func cellForRow(at indexPath: IndexPath) -> UITableViewCell? 

optional func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath)

func viewWillDisappear(_ animated: Bool)
.... 

Когда я выхожу из экрана an, вызывались следующие функции.

....
func viewWillAppear(_ animated: Bool)

func viewWillDisappear(_ animated: Bool)
.... 

Но почему willDisplaycell не был вызван между viewWillAppear и viewWillDisappear?

Журналы:

viewWillAppear
cellForRowAtIndexPath: 0 
willDisplayCell: 0 
cellForRowAtIndexPath: 1 
willDisplayCell: 1 
cellForRowAtIndexPath: 2 
willDisplayCell: 2 
viewWillDisappear
viewWillAppear
viewWillDisappear

Вместо:

viewWillAppear
cellForRowAtIndexPath: 0 
willDisplayCell: 0 
cellForRowAtIndexPath: 1 
willDisplayCell: 1 
cellForRowAtIndexPath: 2 
willDisplayCell: 2 
viewWillDisappear
viewWillAppear
willDisplayCell: 0 
willDisplayCell: 1 
willDisplayCell: 2 
viewWillDisappear

1 Ответ

0 голосов
/ 11 октября 2018

В конечном итоге я проверил, какие ячейки представлены в viewDidAppear.Не уверен, что это лучший ответ, поэтому не стесняйтесь добавлять лучшие.

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    [self logVisibleSections];
}

-(void)logVisibleSections
{
    for (NSIndexPath *indexPath in self.tableView.indexPathsForVisibleRows)
    {
        // Do what needs to be done with visible cells 
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...