Configurar el tamaño de contenido de mi UIScrollView en viewDidLoad / viewWillAppear no tiene efecto, ¿por qué?

Estoy intentando forzar el tamaño de contenido de mi UIScrollVIew cuando hay cargas de contenedores. Estoy encontrando esto mucho más difícil de lo que me imagino que sería. Intenté configurar el tamaño de contenido tanto en viewDidLoad como en viewWillAppear , así:

 -(void)viewWillAppear:(BOOL)animated { CGSize newContentSize = CGSizeMake(scrollView.contentSize.width, scrollView.frame.size.height + 80.0); [scrollView setContentSize:newContentSize]; } 

Si setContentSize un punto de interrupción justo después de llamar a setContentSize , puedo ver que el nuevo tamaño de contenido es, de hecho, lo que lo configuré.

Sin embargo, si luego viewWillAppear el tamaño del contenido en algún punto arbitrario después de viewWillAppear , como, por ejemplo, scrollViewDidScroll , el tamaño de contenido ha vuelto al tamaño del contenido "real" en la vista de desplazamiento y no el tamaño que intenté forzar que esté en viewDidAppear .

¿Por qué es esto?

No tengo idea de qué es lo que te restablece, pero puedo ayudarte a encontrar la respuesta.

Lo que suelo hacer en una situación como esta es la subclass UIScrollView (generalmente como "XXXUIScrollView"), anular setContentSize: (para llamar a [super setContentSize:size] , tal vez con un NSLog), y establecer un punto de interrupción en el método anulado para ver que es lo que establece el valor

Tengo exactamente el mismo problema y la única solución encontrada hasta ahora fue hacer performSelector: withObject: afterDelay – para establecer la propiedad contentSize después de un pequeño retraso: UIScrollView no se desplazará incluso cuando establezco el tamaño del contenido