当我在"
div class="one_answers"> 我的iPhone"设置下打开"人员热点"时,"我的iPhone"应用程序的UI在下面移动了20像素。我该如何处理这个问题。
有没有办法检测热点是打开还是关闭。?
谢谢vikas<</p>
您可以使用以下选择器获得多种尺寸,每当热点或其他通知出现时,statusBarFrame 将变为 40px 高。
CGRect rect;
rect = [[UIScreen mainScreen] bounds]; // Get screen dimensions
NSLog(@"Bounds: %1.0f, %1.0f, %1.0f, %1.0f", rect.origin.x, rect.origin.y, rect.size.width, rect.size.height);
rect = [[UIScreen mainScreen] applicationFrame]; // Get application frame dimensions (basically screen - status bar)
NSLog(@"App Frame: %1.0f, %1.0f, %1.0f, %1.0f", rect.origin.x, rect.origin.y, rect.size.width, rect.size.height);
rect = [[UIApplication sharedApplication] statusBarFrame]; // Get status bar frame dimensions
NSLog(@"Statusbar frame: %1.0f, %1.0f, %1.0f, %1.0f", rect.origin.x, rect.origin.y, rect.size.width, rect.size.height);
您有多种选择来处理此问题:
- 对于支持 iOS 6 之前版本的应用程序,在视图上使用正确的自动调整大小遮罩,并确保所有自定义视图都正确设置其自动调整大小遮罩。
- 对于支持 iOS 6+ 的应用程序,请使用自动布局和约束。
- 对于具有大量自定义绘图或视图的应用程序,在适当时覆盖视图控制器上的 -viewWillLayoutSubviews,和/或自定义视图上的 -layoutSubviews。