2013-04-16 4 views

Antwort

21

In Code, eine Ansicht zu erhalten, verlassen haben feste und rechten Rand mit einer flexiblen Breite können Sie wie folgt vorgehen:

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]; 

nach Bedarf anpassen Ihre tatsächliche subview zu erstellen. Passen Sie die subviewFrame an die gewünschten Ränder an.

Wie beantwortet, wird dies Ihre Unteransicht festen linken und rechten Rand von jeweils 20 Punkten und eine flexible Breite geben. Wenn die eingestellt wird, wird jede Komponente, die nicht als flexibel festgelegt ist, automatisch (fast) fixiert. Dies bedeutet, dass der obere Rand und die Höhe ebenfalls fixiert sind (da sie nicht festgelegt sind). Der untere Rand ist implizit flexibel, da der obere Rand und die Höhe fest sind. Alle drei Werte, die über oder nach oben/unten gehen, können aus offensichtlichen Gründen nicht gleichzeitig behoben werden.

+0

scheint sehr schwierig ..! lass mich das versuchen –

+0

Nicht schwierig überhaupt. Es ist eigentlich ganz einfach. Die festen Ränder werden unabhängig von der Größe der Unteransicht relativ zur übergeordneten Ansicht festgelegt, wenn Sie die Ansicht erstellen. Das ist es. Geben Sie der Unteransicht eine flexible Breite und Sie sind fertig. – rmaddy

+0

nicht schwierig, es ist nur, dass UIView erstellt in Code einen anderen Standard als der in IB verwendet haben. Was zu einiger Verwirrung führen kann. –

Verwandte Themen