Нет, но если Ваш язык поддерживает его, существует веский довод, который будет сделан этим в большинстве случаев, они должны (может) быть объявлен как 'статичный'... Static говорит компилятору, что они нельзя инстанцировать, и что все методы в них должны быть статичными.
Краткий обзор для классов, которые ДЕЙСТВИТЕЛЬНО имеют основанные на экземпляре детали реализации, которые будут использоваться экземплярами производных классов...
I had something similar I believe. I added a BOOL as instance variable which tells me if the offset has been restored and check that in -viewWillAppear:
. When it has not been restored, I restore it in that method and set the BOOL to indicate that I did recover the offset.
It's kind of a hack and it probably can be done better, but this works for me at the moment.
Разве UITableView
layoutSubviews
не вызывается непосредственно перед тем, как табличное представление отобразит свое содержимое? Я заметил, что он вызывается после того, как табличное представление закончило загрузку своих данных, возможно, вам следует провести исследование в этом направлении.
Этот ответ, похоже, больше не работает из-за некоторых изменений, внесенных в реализацию UITableView с момента написания ответа. См. Этот комментарий: Получить уведомление, когда UITableView закончит запрашивать данные?
Я играл с этой проблемой пару дней и думаю, что подкласс UITableView
reloadData
- лучший подход:
- (void)reloadData {
NSLog(@"BEGIN reloadData");
[super reloadData];
NSLog(@"END reloadData");
}
reloadData
не заканчивается, пока таблица не завершит перезагрузку своих данных. Итак, когда запускается второй NSLog
, табличное представление фактически завершило запрос данных.
Я создал подкласс UITableView
для отправки методов делегату до и после reloadData
. Работает как часы.