2013-04-05 2 views
0

내가 4 subviews -보기 2 UIImageView의, 2 UILabel's.I 다른보기 (어디에서나 필요합니다)이보기를 배치 할 필요가있는 "MyView"라는 이름의보기가 있습니다. "MyView"에 주어진 프레임에 따라 하위보기는 위치와 크기에 따라 조정되어야합니다 (원래 위치와 크기에 따라 자동 조정). "MyView"에서 4 개의 하위보기 중 하나를 제거하면 나머지 3 개의 하위보기가 "MyView"내에서 자동으로 조정됩니다. 이전 버전을 지원하려면 "AutoLayout"없이이 작업을 수행해야합니다. IB에서 AutoresizingMask 속성을 사용했지만 원하는 결과를 얻지 못했습니다.iphone/ipad의 자동 크기 조정 하위보기?

아무에게도이를 달성하는 방법을 알려줄 수 있습니까?

답변

0

Autolayout이 없으면 익숙하지 않은 레이아웃을 할 수 없습니다.

MyView에 대한 사용자 정의 하위 클래스를 작성해야합니다. 그런 다음 서브 뷰의 위치를 ​​조정하고 크기를 조정하려면 layoutSubviews (뷰의 프레임이 변경 될 때마다 호출되는 beeing)을 덮어 씁니다.

@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; 
    ... 
}