2012-11-09 6 views
1

container view의 크기가 (0,0) 인 동안 내 컨테이너 뷰에 하위 뷰를 추가했습니다. 내 subview의 고정 여백 길이는 4입니다 (위, 왼쪽, 아래)을 container view에 입력하십시오. 내 layOutSubviews 메서드를 사용자 정의하지 않고도이 목표를 달성 할 수 있습니까?0 뷰에 서브 뷰 추가 UIView

- initWithFrame:(CGRect)frame { 
    self = [super initWithFrame:frame]; 
    if (self) { 
     mySubview = [[UIView alloc] init]; 
     //how to code here???? 
     [myContainerView addSubview:mySubview]; 
    } 
    return self; 
} 

답변

1

아이폰 OS 6에서, 당신은 제약이 작업을 수행 할 수 있어야처럼 내 코드는하지만, 아이폰 OS (6) 이전에, 나는 이전에 비 제로 프레임을 데 파단을 추가하지 않는 것이 좋습니다 , 그렇지 않으면 layoutSubviews을 사용하여 수정하는 것이 좋습니다. 제로 크기의 상자 안에 4 포인트 여백을 둘 수는 없으므로 스프링과 스트럿을 사용하여 자동 크기 조절을 절대로하지 않을 것입니다. 롭 네이피어 말했다 무엇 ...

0
- initWithFrame:(CGRect)frame { 

    self = [super initWithFrame:frame]; 
    if (self) { 
     mySubview = [[UIView alloc] init]; 
     mySubview.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
     [myContainerView addSubview:mySubview]; 
    } 
    return self; 
} 
+0

사용해야'- [UIView의 initWithFrame :]'이 아닌'-init'. – nielsbot

0

자신 만 -layoutSubviews은 간단합니다 :

-(void)layoutSubviews 
{ 
    [ super layoutSubviews ] ; 

    CGRect insetBounds = CGRectInset(self.bounds, 4.0f, 4.0f) ; 
    self.<<the inset subview>>.frame = insetBounds ; 
} 
관련 문제