J'ai un UITableView avec une liste d'éléments. En sélectionnant un élément pousse un viewController qui procède alors à effectuer les opérations suivantes. à partir de la méthode viewDidLoad j'ai d'incendie à une URLRequest pour les données qui sont requises par une de mes sous-vues - une sous-classe UIView avec drawRect remplacée. Lorsque les données arrivent à partir du nuage, j'ai commencer la construction de mon point de vue de la hiérarchie. la sous-classe en question reçoit les données et la méthode drawRect a maintenant tout ce qu'il doit rendre.
Mais.
Parce que je ne l'appelez pas drawRect explicitement - Cacao-Toucher les poignées que je n'ai aucun moyen de les informer de Cacao-Touch que j'ai vraiment, vraiment envie cette sous-classe UIView à rendre. Quand? Maintenant, ce serait bien!!!
J'ai essayé [mavue setNeedsDisplay]. Ce genre de travaux parfois de. Très inégale.
J'ai lutte avec cela pendant des heures et des heures. Quelqu'un qui merci de me fournir un rocher solide, garanti approche à forcer un UIView un nouveau rendu.
Voici l'extrait de code qui se nourrit des données de la vue:
// Create the subview
self.chromosomeBlockView = [[[ChromosomeBlockView alloc] initWithFrame:frame] autorelease];
// Set some properties
self.chromosomeBlockView.sequenceString = self.sequenceString;
self.chromosomeBlockView.nucleotideBases = self.nucleotideLettersDictionary;
// Insert the view in the view hierarchy
[self.containerView addSubview:self.chromosomeBlockView];
[self.containerView bringSubviewToFront:self.chromosomeBlockView];
// A vain attempt to convince Cocoa-Touch that this view is worthy of being displayed ;-)
[self.chromosomeBlockView setNeedsDisplay];
Cheers, Doug