J'utilise Cocoanetic's pull-to-reload mais avec une torsion: je voudrais que l'UITableView puisse tirer, pour ainsi dire, pour charger plus de données.Quel est le bon endroit pour ajouter une sous-vue dépendante de scrollView.contentSize?
J'ai personnalisé les classes et j'ai réussi à ajuster toutes les fonctionnalités pour supporter cela. Ce qui m'a bloqué, fondamentalement, est où dans mon code pour créer et ajouter la vue supplémentaire.
J'ai d'abord essayé de l'ajouter dans viewDidLoad de la classe de Cocoanetic (un UITableViewController
):
- (void)viewDidLoad
{
[super viewDidLoad];
refreshHeaderView = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f, 0.0f - self.view.bounds.size.height, 320.0f, self.view.bounds.size.height)];
refreshFooterView = [[EGORefreshTableFooterView alloc] initWithFrame:CGRectMake(0.0f, 0.0f + self.tableView.contentSize.height, 320.0f, 20.0f)];
[self.tableView addSubview:refreshHeaderView];
[self.tableView addSubview:refreshFooterView];
self.tableView.showsVerticalScrollIndicator = YES;
}
Cela ne fonctionne pas, comme self.tableView.contentSize.height
est égal à zéro à ce stade, car la table n'a pas encore chargé ses données .
Ne vous inquiétez pas, je pensais, et a essayé de l'ajouter dans le viewDidLoad de la sous-classe UITableViewController j'ai fait:
- (void)viewDidLoad
{
[super viewDidLoad];
// stuff
self.model = [ListingModel listingModelWithURL:@"avalidurl" delegate:self];
refreshFooterView = [[EGORefreshTableFooterView alloc] initWithFrame:CGRectMake(0.0f, 0.0f + self.tableView.contentSize.height, 320.0f, 20.0f)];
[self.tableView addSubview:refreshFooterView];
}
Remarque Je mets d'abord le modèle, mais aussi ne fonctionne pas, pour la même raison. Je suppose que la table n'a pas encore été aménagée. Dans la frustration que j'ai donné ma classe une propriété BOOL
et une méthode addFooter
(le BOOL
pour vous assurer qu'il est appelée une seule fois) appelé de tableView:cellForRowAtIndexPath:
qui est évidemment loin de la bonne manière ™
Alors ce qui, compte tenu de ce scénario, être le bon moyen?
Alors, comment procéder ainsi, en gardant à l'esprit que j'utilise un UITableViewController? Je charge un UITableView à partir d'une plume, d'où ma question supplémentaire :) – Zsub