sube solo porque pantalla opaca brillo baja automatico objective-c uiscrollview uiimageview ios6 autolayout

objective-c - solo - la pantalla de mi iphone se ve opaca



Incruste ImageView en ScrollView con diseño automático en iOS 6 (2)

Estoy tratando de hacer un elemento muy simple con el nuevo iOS 6 SDK con diseño automático. Tengo un ImageView y lo incrusté en ScrollView. (Todo se construye con Interface Builder). El archivo .png se establece y el modo imageView se establece en "Arriba a la izquierda".

Implementación:

#import "ImaginariumViewController.h" @interface ImaginariumViewController () @property (weak, nonatomic) IBOutlet UIScrollView *scrollView; @property (weak, nonatomic) IBOutlet UIImageView *imageView; @end @implementation ImaginariumViewController - (void)viewDidLoad { [super viewDidLoad]; self.scrollView.contentSize = self.imageView.image.size; self.imageView.frame = CGRectMake(0, 0, self.imageView.image.size.width, self.imageView.image.size.height); } @end

Cuando ejecuto la aplicación, la imagen no se desplaza. Haciendo todo lo mismo con el diseño automático desactivado (con puntales y resortes), tengo trabajo de desplazamiento. Supongo que el problema es con las restricciones. ¿Podría alguien ayudarme por favor?


Acabo de encontrar el mismo problema en un tutorial que estaba actualizando. Intenté eliminar las restricciones mediante programación, maldiciendo y golpeando mi cabeza contra la pared, sin suerte.

Hace unos 5 minutos, sin embargo, intenté algo que solucionó otro problema que encontré y, ¡da! ¡UIScrollView está funcionando de nuevo! La solución fue mover el código antiguo que establece la propiedad UIScrollView contentSize en una implementación de viewDidAppear, en lugar de viewDidLoad:

- (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; self.theScroller.contentSize=CGSizeMake(200.0,2000.0); }

Espero que esto ayude a alguien más a enfrentar algunos de los dolores de cabeza que han aparecido con el diseño automático.


Autolayout puede ser muy confuso al principio. En realidad, no desea establecer el tamaño de contenido de la vista de desplazamiento en cualquier lugar. Con un enfoque de reproducción automática pura, la vista de desplazamiento establece su propio tamaño de contenido. Consulte la sección sobre autolayout y UIScrollView en las notas de la versión de iOS 6 :

Las restricciones en las subvistas de la vista de desplazamiento deben resultar en un tamaño para completar, que luego se interpreta como el tamaño del contenido de la vista de desplazamiento. (Esto no debe confundirse con el método intrinsicContentSize utilizado para el diseño automático).

Tenga en cuenta que esto significa que las restricciones en las subvistas de la vista de desplazamiento deben establecer anchos y alturas explícitos y no usar anchos que varíen según los aspectos de la vista de desplazamiento.

El segundo error aquí es que establece el marco del UIImageView al tamaño de la imagen. Con autolayout esto también es innecesario. El UIImageView realidad tiene un tamaño de contenido intrinsicContentSize que es el tamaño de la imagen subyacente. (Para cambiar esto, debe establecer restricciones de ancho y alto con una prioridad alta) Eso significa que con el diseño automático para colocar una imagen en una vista de desplazamiento y hacer que se desplace por el código correcto debe ser lo siguiente:

** nothing at all!!! **

Pero todavía hay algo que debes tener en cuenta y que podría hacer que tengas una imagen que parece que no se desplaza y la sugerencia se encuentra en las notas de la versión mencionada anteriormente:

Tenga en cuenta que puede hacer que una subvista de la vista de desplazamiento aparezca flotando (no se desplace) sobre el otro contenido de desplazamiento creando restricciones entre la vista y una vista fuera del subárbol de la vista de desplazamiento, como la vista de supervisión de la vista de desplazamiento.

es decir, si establece restricciones en el generador de interfaces y restringe la vista de la imagen a una vista por encima de la vista de desplazamiento en la jerarquía, esto afectará la apariencia de la vista para desplazarse. ¡Enojado!

Feliz codificación ...