2013-04-16 16 views

cevap

21

bir görünüm sol ve sağ kenar boşlukları aşağıdakileri yapabilirsiniz esnek genişliği ile birlikte sabit almak için: gerçek subview yaratmak için gerektiği kadar

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

ayarlayın. İstediğiniz kenar boşluklarını eşleştirmek için subviewFrame'u ayarlayın.

Yanıtlandığı gibi bu, alt görünümünüzde her biri 20 nokta sabit ve sağ kenar boşlukları ve esnek bir genişlik sağlayacaktır. autoresizingMask ayarlandığında, esnek olarak ayarlanmayan herhangi bir bileşen otomatik olarak sabitlenir (neredeyse). Bu, üst kenar boşluğu ve yüksekliğin de sabit olduğu anlamına gelir (ayarlanmadıkları için). Alt kenar boşluğu, üst kenar boşluğu ve yükseklik sabit olduğu için örtülü olarak esnek hale getirilir. Karşı karşıya gelen veya yukarı/aşağı giden üç değerin tamamı, açık nedenlerle aynı anda sabitlenemez.

+0

çok zor görünüyor ..! Bu –

+0

denememe izin vermeyin. Aslında oldukça basit. Sabit kenar boşlukları, görünümü oluştururken alt görünümün kenar boşlukları, ana görünümüne göre değişir. Bu kadar. Alt görüşe esnek bir genişlik kazandırın ve işiniz bitti. – rmaddy

+0

zor değil, sadece kodda oluşturulan UIView IB'de kullanılandan farklı bir varsayılan var. Hangi bazı kafa karışıklığına yol açabilir. –

İlgili konular