2013-04-16 8 views

Odpowiedz

21

W kodzie, aby uzyskać wgląd do ustaliły lewy i prawy margines wraz z elastycznej szerokości można wykonać następujące czynności:

UIView *parentView = self.view; // adjust as needed 
CGRect bounds = parentView.bounds; // get bounds of parent view 
CGRect subviewFrame = CGRectInset(bounds, 20, 0); // left and right margin of 20 
UIView *subview = [[UIView alloc] initWithFrame:subviewFrame]; 
subview.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
[parentView addSubview:subview]; 

Dostosuj ile potrzeba, aby stworzyć rzeczywisty podrzędny. Dostosuj wartość subviewFrame, aby uzyskać pożądane marginesy.

Jako odpowiedź, da to twojemu podglądowi ustalony lewy i prawy margines po 20 punktów każdy i elastyczną szerokość. Podczas ustawiania autoresizingMask każdy komponent, który nie jest ustawiony jako elastyczny, jest automatycznie naprawiany (prawie). Oznacza to, że górny margines i wysokość są również stałe (ponieważ nie są ustawione). Dolny margines jest niejawnie elastyczny, ponieważ górny margines i wysokość są stałe. Wszystkie trzy wartości przechodzące w poprzek lub w górę/dół nie mogą być ustalone w tym samym czasie z oczywistych powodów.

+0

wydaje się bardzo trudne ..! pozwól mi to wypróbować. –

+0

Nie jest to wcale trudne. To całkiem proste. Stałe marginesy będą równe Bez względu na marginesy widoku, w stosunku do jego widoku nadrzędnego, podczas tworzenia widoku. to jest to! Daj podglądowi elastyczną szerokość i gotowe. – rmaddy

+0

Nie jest to trudne, tylko że UIView utworzone w kodzie mają inną wartość domyślną niż ta zastosowana w IB. Co może prowadzić do pewnego zamieszania. –

Powiązane problemy