2

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

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

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

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

4

2 回答 2

0

您可以观察UIApplicationWillChangeStatusBarFrameNotificationUIApplicationDidChangeStatusBarFrameNotification

于 2015-01-29T07:40:16.723 回答
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];

}
于 2012-03-13T08:32:45.737 回答