2016-06-02 3 views
0

내가 가지고있는 UIView,UIView의 프레임

UIView *topBarView 

내가 지금은

로 topBarView의 프레임을 설정하고

CGSizeMake(self.view.bounds.size.width, self.view.bounds.size.height*.05); 

로 topBarView의 폭과 높이, 즉 크기를 결정하고

topBarView.frame = (CGRect){0, 0,topBarSize}; 

내보기 컨트롤러 내 회전을 위해이 조건을 설정했습니다.

- (BOOL)shouldAutorotate 
{ 
    return YES; 
} 

-(UIInterfaceOrientationMask)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskPortrait; 
} 

내보기 컨트롤러가 세로 모드로 열립니다 때 모든 좋은 예상대로 topBarView은 상단

그러나에 위치 내보기 대신 풍경을 맨 위에있는 풍경 왼쪽 모드에서 topBarView를 열 때 화면의 왼쪽에 있습니다. 즉, 세로의 경우와 같은 프레임입니다.

어떻게 해결할 수 있습니까?

+0

., viewDidLoad 또는 viewWillAppear에서 ?? – Aneesh

+0

viedDidLoad에서 설정했습니다. –

+0

viewDidAppear() 메서드 내부에서 시도해 볼 수 있습니까? 그래도 문제가 계속 지속된다면 – Aneesh

답변

0

프레임을 설정 했으므로보기의 origin is (0,0)은 어떤 방향 으로든 왼쪽 상단 구석에 명확하게 설정됩니다.

방향에 따라 너비와 높이를 관리하려면 autolayout을 사용해야합니다.

top,leading,trailing and fixed height 제약 조건을 해당보기로 설정해야합니다. 그래서 그것은 방향으로 높이, 너비 및 위치를 관리합니다.

업데이트 : (코멘트에서 질문으로)

있는 viewDidLoad 코드 아래의 쓰기와는 당신이

UIView *topBarView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height * 0.5)]; 
topBarView.backgroundColor = [UIColor orangeColor]; 
[self.view addSubview: topBarView]; 

희망이 도움이 될 것입니다 코멘트 : 당신이 topBarview의 프레임을 설정 한

+0

안녕하세요, 내 View Controller가로드 될 때마다 topBarView를 최상위로 유지하기 만하면됩니다. –

+0

답변에서 내 업데이트를 확인하십시오. – Lion

관련 문제