2012-03-13 2 views
2

상태 표시 줄 높이를 늘리면보기 컨트롤러에서 UIImageView 및 단추의 위치를 ​​변경하려고합니다.상태 표시 줄 높이가 변경 될 때보기의 프레임을 변경 하시겠습니까?

상태 표시 줄 높이를 비교하여보기 프레임을 변경했으며 상태 표시 줄 프레임이 변경 될 때 아래의 메서드가 호출되지만 대리자에서 호출된다는 것을 알고 있습니다.

- (void)application:(UIApplication *)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame 
- (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame 

는하지만 난 그렇게 할 수있는 방법을 너무 뷰 컨트롤러에서 이미지보기 & 버튼의 위치를 ​​변경하려면? 그 방법 중 하나를 실행할 때

+2

아래 메서드를 구현하여 솔루션을 찾았습니다 : [[NSNotificationCenter defaultCenter] addObserver : 셀렉터 : @selector (changeframe) name : UIApplicationWillChangeStatusBarFrameNotification object : nil]; –

답변

0

당신은 위치를 변경합니다보기에 공공 방법을 만들 수 있습니다, 뭔가 같은 :

-(void)changePosition { 
myImageView.frame = CGRectMake(newPosition.x, newPosition.y, myImageView.frame.size. width, myImageView.frame.size.height) 

myButton.frame = CGRectMake(newPosition.x, newPosition.y, myButton.frame.size. width, myButton.frame.size.height) 
} 

, 그것은 공공 만드는 .H 파일을 만들려면 다음과 같이 :

@interface MyView : UIViewController { 
} 

-(void)changePosition; 
@end 

그리고 당신은 당신의 대리자 전화 :

- (void)application:(UIApplication *)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame{ 

[myView changePosition]; 

} 
+0

나는 그 방법이 클래스 메소드가 될 것이라고 생각한다. 대신에 그 메소드 대신에 ... - –

+0

만약 + 당신이 정적 메소드 –

+1

고맙습니다하지만 아래의 메소드를 구현하여 또 다른 해결책을 찾았습니다 : [+ [NSNotificationCenter defaultCenter] addObserver : 셀렉터 : @ 선택기 (changeframe) 이름 : UIApplicationWillChangeStatusBarFrameNotification 객체 : nil]; –

0

당신은 obse 수 r UIApplicationWillChangeStatusBarFrameNotification 또는 UIApplicationDidChangeStatusBarFrameNotification.

관련 문제