Pytanie Dziwne UIImageView w UIScrollView


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.

- (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);
}

Dane wyjściowe konsoli:

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

Czy ktoś wie, dlaczego?


13
2018-03-22 08:47


pochodzenie




Odpowiedzi:


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 subviews w środku.


34
2018-03-22 09:59



Dziękuję, te dwa podprzestrzenie obrazu sprawiło, że również podrapałem się w głowę! :) - chown
Dzięki! należy to uwzględnić przy dostosowywaniu rozmiaru treści ScollView zgodnie z jego subskrybcjami. ( stackoverflow.com/questions/2944294/... ) - AmitP


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

Uruchom aplikację i policz liczbę subskrybentów, 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. Liczba będzie wynosić 2.

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


0
2018-03-22 08:55