Jaki jest najsolidniejszy sposób wymuszenia odświeżania UIView?

Mam UITableView z listą elementów. Wybranie elementu powoduje, że kontroler viewController wykonuje następujące czynności. from method viewDidLoad Odpalam URLRequest dla danych wymaganych przez moje subviews - podklasa UIView z nadpisanym drawRect. Kiedy dane docierają z chmury, zaczynam budować hierarchię widoków. dana podklasa przechodzi przez dane, a metoda drawRect ma teraz wszystko, czego potrzebuje do renderowania.

Ale.

Ponieważ nie nazywam drawRect wyraźnie - Cocoa-Touch obsługuje to - nie mam sposobu informowania Cocoa-Touch, że naprawdę chcę, aby ta podklasa UIView była renderowana. Gdy? Teraz byłoby dobrze!

Próbowałem [myView setNeedsDisplay]. To czasami działa. Bardzo nierówny.

Zmagam się z tym przez wiele godzin. Czy ktoś, kto może mi zapewnić solidne, gwarantowane podejście do wymuszenia ponownego renderowania UIView?

Oto fragment kodu, który przekazuje dane do widoku:

// 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];

Pozdrawiam, Doug

questionAnswers(5)

yourAnswerToTheQuestion