Cómo replace el almacenamiento de text de un NSLayoutManager

Estoy intentando build una celda de vista de tabla que tenga una UITextView. Para reutilizar esta celda de vista de tabla, establezco un nuevo almacenamiento de text en el administrador de layout. Pero agregar el administrador de layout al nuevo almacenamiento de text no cambia el almacenamiento de text de la vista de text.

El administrador de layout, el contenedor de text, la vista de text están configurados de la siguiente manera:

_myLayoutManager = [[NSLayoutManager alloc] init]; _myTextContainer = [[NSTextContainer alloc] init]; [_myLayoutManager addTextContainer:_myTextContainer]; _myTextView = [[UITextView alloc] initWithFrame:self.bounds textContainer:_myTextContainer]; 

Cuando "configuro" la celda de vista de tabla, agrego el administrador de layout a un nuevo almacenamiento de text:

 MyTextStorage *textStorage = ... [textStorage addLayoutManager:self.myLayoutManager]; 

Esto funciona hasta ahora, que el nuevo text se mostrará correctamente. Pero cuando reutilé la celda (agregando el administrador de layout a otro almacenamiento de text) y obtuve el tamaño de la vista de text, a través de …

 [self.myTextView systemLayoutSizeFittingSize:...] 

… obtén el tamaño incorrecto. Después de ver las properties de la vista de text, descubrí que todavía apunta al almacenamiento de text incorrecto.

 self.myLayoutManager.textStorage -> <new text storage> self.myTextView.textStorage -> <old text storage> 

Esto se siente muy extraño. ¿Necesito configurar nuevamente la stack completa (administrador de layout, contenedor de text, vista de text)?

En caso afirmativo, tendría que iniciar una nueva vista de text y también actualizar las restricciones de layout, lo que sería bastante costoso.