2014-12-15 6 views
0

iPhone 4/4s 화면에서 다른 UIButton/UILabel/크기로 표시하고 싶습니다. 상위 ViewController viewDidAppear: 메서드에서 내 viewFormatting 함수를 호출하여 새 단추 프레임을 설정할 수있었습니다.UIView 내 UIButton 프레임 변경

- (void) viewFormatting 
{ 
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
    { 
     CGSize result = [[UIScreen mainScreen] bounds].size; 

     //iPhone 4 
     if (result.height == 480) 
     { 
      self.myButton.frame = CGRectMake(x, y, width, height); 
      self.myLabel.frame = CGRectMake(x, y, width, height); 
      //etc. 
     } 
    } 
} 

하지만 별도의 UIView 클래스에 initWithFrame: 내부에 같은 방법 viewFormatting를 호출 할 때 버튼/레이블 프레임 크기를 조정하지 않습니다. 나는 또한 layoutSubviews 내부 함수 호출을 시도했다. NSLogviewFormatting 안에 넣었으므로 올바르게 호출되는 것을 알고 있지만 버튼/레이블 프레임은 변경되지 않습니다.

참고 : 두 시나리오 모두에서 XIB 파일에 콘센트를 만들었습니다.

도움을 주시면 대단히 감사하겠습니다.

+0

ViewDidLayoutSubview에 기재하십시오. – Jageen

+0

이 경우입니까? http://stackoverflow.com/questions/19515924/redraw-view-off-screen-contains-picker-view-and-tool-bar/19532803#19532803 – Jageen

+0

** AutoLayout **을 사용하고 있습니까? – nburk

답변

0

업데이트 : @ nburk 덕분에 AutoLayout 사용이 내 xib 파일에서 확인되었음을 알았습니다. 그 코드를 제거한 후 완벽하게 작동합니다.

샘플이 필요한 모든 사람들을 위해 여기에 남겨 두겠습니다.

+0

그러면 자신의 대답을 받아 들일 수 있으므로 쉽게 알아 차릴 수 있습니다. –

+0

수락하기 전에 2 일을 기다려야합니다. – Seslyn

0

추가 방법 : - (void) viewDidLayoutSubviews { [super viewDidLayoutSubviews]; [self viewFormatting]; }

viewDidLayoutSubviews가 자동으로 호출됩니다.

관련 문제