2011-03-22 12 views
12

Bardzo dziwne zachowanie, na środku ekranu znajduje się okrągła kropka wykorzystująca ten kod, a także widok UIScroll bez niczego wewnątrz stalówki. Oczekuję, że widok UIScrollview powinien być pusty. Kropka rozmywa się i znika po przewinięciu ekranu.Dziwne UIImageView w 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); 
} 

Wyjście konsola jest:

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

Czy ktoś wie dlaczego?

Odpowiedz

33

Po powiększeniu UIImageView i poprawieniu konfiguracji, doszedłem do wniosku, że UIImageView jest w rzeczywistości paskiem przewijania, a jeśli włączony jest przewijanie poziome i pionowe, "pusty" widok UIScroll ma dwa widoki podrzędne wewnątrz.

+3

Dziękuję, te dwa podprzestrzenie obrazu sprawiło, że również podrapałem się w głowę! :) – chown

+0

Dzięki! należy to uwzględnić przy dostosowywaniu rozmiaru treści ScollView zgodnie z jego subskrybcjami. (http://stackoverflow.com/questions/2944294/how-i-auto-size-a-uiscrollview- to-fit-the-content) – AmitP

0

Miałem ten sam problem. Obliczanie liczby subskrybentów może być bardzo zwodnicze, z powodu tej "cechy".

Uruchom aplikację i zlicz liczbę wyświetleń, to będzie 1. Teraz użyj myszki w symulatorze lub palcu na urządzeniu i przesuń palcem od prawej do lewej. Policz liczbę subviews. Numer będzie 2.

Mogę wydedukować tylko to, że ten dodatkowy UIImageView jest produkowany przez Cocoa Touch, aby renderować tło w odpowiednim kolorze, kiedy "odbija się" poza granice UIScrollView.

Powiązane problemy