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.
wydaje się bardzo trudne ..! pozwól mi to wypróbować. –
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
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. –