2011-08-27 26 views
7

Utworzono przełącznik w cellForRowAtIndexPath w ten sposób.Co to oznacza? initWithFrame: CGRectZero]

UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectZero]; 

CGRectZero jest odpowiednikiem CGRectMake (0,0,0,0). Ale przełącznik jest widoczny w normalnym rozmiarze. Nie określono rozmiaru elementu roboczego. Proszę wyjaśnić mi, jak działa powyższy kod.

Odpowiedz

6

UISwitch nie jest konfigurowalny, dotyczy to również rozmiaru.

UISwitch zastępuje initWithFrame: i wymusza rozmiar odpowiedni dla formantu. Składniki rozmiaru danego prostokąta są ignorowane.

+0

faktycznie UISwitch zasłania sizeThatFits: ale efekt jest taki sam. – progrmr

0

Każdy obiekt UIView może przesłonić rozmiar ramki, wykonując metodę UIView z użyciem metody sizeThatFits:. W rzeczywistości UIView class reference mówi, że:

obiekt UISwitch zwraca wartość stałym rozmiarze, który reprezentuje standardowy rozmiar widoku przełącznika