Измените кадр, когда изменится высота строки состояния? - PullRequest
2 голосов
/ 13 марта 2012

Я хочу изменить положение UIImageView и кнопки в контроллере представления, когда высота строки состояния будет увеличена.

Я изменил рамку вида, сравнивая высоту строки состояния, и я также знаю, что метод нижевызывается, когда рамка строки состояния будет изменена, но будет вызвана в делегате.

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

, но я хочу изменить положение представления изображения и кнопку в контроллере представления, так как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 29 января 2015

Вы можете наблюдать UIApplicationWillChangeStatusBarFrameNotification или UIApplicationDidChangeStatusBarFrameNotification .

0 голосов
/ 13 марта 2012

Вы можете создать публичный метод в своем представлении, чтобы изменить положение, когда один из этих методов сработает, например:

-(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];

}
...