更改状态栏高度时更改视图?

时间:2012-03-13 08:08:04

标签: iphone objective-c ios uistatusbar

当状态栏高度增加时,我想在视图控制器中更改UIImageView和按钮的位置。

我通过比较状态栏高度更改了视图框架,并且我知道当状态栏框架将被更改时将调用下面的方法但是它将在委托中调用。

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

但我想改变图像视图的位置&视图控制器中的按钮,我该怎么做?

2 个答案:

答案 0 :(得分: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];

}

答案 1 :(得分:0)

您可以观察 UIApplicationWillChangeStatusBarFrameNotification UIApplicationDidChangeStatusBarFrameNotification