Qual é a maneira mais robusta de forçar um UIView a redesenhar?

Eu tenho um UITableView com uma lista de itens. Selecionar um item envia um viewController que, em seguida, faz o seguinte. from method viewDidLoad Disparo um URLRequest para dados que são requeridos por uma das minhas subvisualizações - uma subclasse de UIView com drawRect sobrescrita. Quando os dados chegam da nuvem, começo a construir minha hierarquia de visualizações. a subclasse em questão recebe os dados e seu método drawRect agora tem tudo que precisa para renderizar.

Mas.

Porque eu não chamo drawRect explicitamente - Cocoa-Touch lida com isso - eu não tenho como informar Cocoa-Touch que eu realmente quero que essa subclasse de UIView seja renderizada. Quando? Agora seria bom!

Eu tentei [myView setNeedsDisplay]. Esse tipo de trabalho às vezes. Muito irregular.

Eu estou lutando com isso por horas e horas. Alguém que poderia me fornecer uma abordagem sólida e garantida para forçar uma nova renderização do UIView?

Aqui está o trecho de código que alimenta os dados para a exibição:

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

Felicidades, Doug

questionAnswers(5)

yourAnswerToTheQuestion