2011-03-22 6 views
12

Comportamento molto strano, c'è un punto rotondo al centro dello schermo che utilizza questo codice e un UIScrollview con niente all'interno di un pennino. Mi aspetto che UIScrollview sia vuoto. Il puntino si sfoca e scompare quando faccio scorrere lo schermo.Strange UIImageView in UIScrollView

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    NSArray *subviews = [closetScroll subviews]; 
    UIImageView *strange=[subviews objectAtIndex:0]; 
    strange.center = CGPointMake([[UIScreen mainScreen] bounds].size.width/2, [[UIScreen mainScreen] bounds].size.height/2); 
    strange.alpha=1; 

    NSLog(@"%@",subviews); 
} 

L'uscita della console è:

<UIImageView: 0x4b1f780; frame = (380.5 508.5; 7 7); opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x4b1f820> 

Qualcuno sa perché?

risposta

33

Dopo aver ingrandito UIImageView e modificato con le configurazioni, sono giunto alla conclusione che UIImageView è in realtà la barra di scorrimento e se lo scorrimento orizzontale e verticale è abilitato, un UIScrollview "vuoto" ha due sotto-viste.

+3

Grazie a queste 2 sottoview di immagini mi stavo facendo graffiare anche la testa! :) – chown

+0

Grazie! questo dovrebbe essere tenuto in considerazione quando si regola la dimensione del contenuto di ScollView in base alle sue subviews. (http://stackoverflow.com/questions/2944294/how-i-auto-size-a-uiscrollview-to-fit-the-content) – AmitP

0

Ho avuto lo stesso problema. Calcolare il numero di sottoview può essere molto ingannevole, a causa di questa "caratteristica".

Avviare l'applicazione e contare il numero di sottoview, questo sarà 1. Ora, utilizzare il mouse nel simulatore o sul dito sul dispositivo e scorrere da destra verso sinistra. Contare il numero di sottoview. Il numero sarà 2.

Non posso dedurre nient'altro che questo UIImageView extra è prodotto da Cocoa Touch per rendere lo sfondo nel colore giusto quando "rimbalza" oltre la fine dei limiti di UIScrollView.