2013-04-05 75 views
0

我有一個視圖(將其命名爲「MyView」),其中有4個子視圖 - 說2 UIImageView的,2 UILabel's.I必須將此視圖放在其他視圖(它需要的地方)。給出一個框架(任何框架)。根據給「MyView」的框架,子視圖應該根據位置和大小進行調整(根據原始位置和大小自動調整)。 如果我從「MyView」中刪除4個子視圖中的任何一個,其餘的3個子視圖應自動在「MyView」中進行調整。我應該在沒有「AutoLayout」的情況下實現這一點,以支持舊版本。 我在IB中使用了AutoresizingMask屬性,但沒有得到想要的結果。在iphone/ipad中自動調整子視圖的大小?

任何人都可以幫助我如何做到這一點。

回答

0

沒有Autolayout,你不能做任何開箱即用的複雜佈局。

您將不得不爲MyView編寫自定義子類。然後覆蓋它的layoutSubviews(每當視圖的框架發生變化時都會調用它)來重新定位並調整子視圖的大小。

@interface MyView : UIView 
@property (weak, nonatomic) IBOutlet UIImageView *iv1; 
@property (weak, nonatomic) IBOutlet UIImageView *iv2; 
@property (weak, nonatomic) IBOutlet UILabel *label1; 
@property (weak, nonatomic) IBOutlet UILabel *label2; 
//... 
@end 

@implementation MyView 

- (void)layoutSubviews 
{ 
    CGRect frame = self.iv1.frame; 
    frame.origin.x = someValue * self.bound.size.width; 
    frame.origin.y = ...; 
    self.iv1.frame = frame; 
    ... 
}