- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
这个问题似乎是间歇性的,但我不确定具体原因。在设备 (iPad) 上运行我的应用程序时,我有一些代码可以根据当前设备方向加载带有一些 ImageView 的 ScrollView 。尽管设备在加载前是横向的,但加载 View 时就好像它是纵向的一样。
方向是通过调用 [[UIApplication sharedApplication] statusBarOrientation]
找到的。
View 被设置为在设备旋转时调整它们的位置,事实上,旋转到纵向然后回到横向会使它们回到正确的横向位置。是否所有应用程序都以纵向模式开始,并在需要时很快更改为横向模式?我是否尝试过早检查方向(在要加载的第一个 View Controller 的 init
期间)?
最佳答案
确定。
使用 UINavigationController,当我 popToViewController:animated: 从横向 View 到纵向 View 时,目标 View 显示正确,但状态栏和 UIKeyboard 保持横向配置,造成真正的困惑。
变通在阅读了数以千计关于 statusBarOrientation 和引用资料的建议之后...... https://developer.apple.com/library/content/releasenotes/General/RN-iOSSDK-6_0/index.html
"The setStatusBarOrientation:animated: method is not deprecated outright. It now works only if the supportedInterfaceOrientations method of the top-most full-screen view controller returns 0. This makes the caller responsible for ensuring that the status bar orientation is consistent." (thanks to Vytis in here)
statusBarOrientation 仅在 supportedInterfaceOrientations 返回 0 时有效,所以...让我们猜测一下。
如果 statusBarOrientation 不符合预期,返回一个零即可(如果始终返回 0, View 将不会旋转,因此:
// if deviceOrientation is A (so I expect statusbarOrientation A
// but statusbarOrientation is B
// return 0
// otherwise
// return user interface orientation for A
- (NSUInteger)supportedInterfaceOrientations {
UIDeviceOrientation deviceOrientation = [[UIDevice currentDevice] orientation];
UIInterfaceOrientation statusBarOrientation =[UIApplication sharedApplication].statusBarOrientation;
if(deviceOrientation == UIDeviceOrientationPortrait || deviceOrientation == UIDeviceOrientationPortraitUpsideDown){
if(statusBarOrientation != UIInterfaceOrientationPortrait ||statusBarOrientation != UIInterfaceOrientationPortraitUpsideDown){
return 0;
}
}
// otherwise
return UIInterfaceOrientationMaskPortrait;
}
现在,在 viewDidAppear 中(相信我,即使收到键盘通知,我也会使用此调用:
[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationPortrait;
超过 48 个工时。希望这对大家有所帮助,谢谢大家。
关于ios - 状态栏是横向的,但是 [[UIApplication sharedApplication] statusBarOrientation] 返回纵向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5810397/
当我调用UIApplication.shared.setStatusBarOrientation(.landscapeRight,animated: true) 应用程序进入后台并返回,打印 “App
我有一个非常棘手的代码,因为有时我会设置一个新的方向。 [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait]
println(\(UIApplication.sharedApplication().statusBarOrientation)) 将 (Enum Value) 打印到控制台。我可以在不求助于 st
如何检测第一个 View 中应用程序的正确方向?我需要知道,这样我才能将纵向图像或横向图像显示为背景。 [[UIDevice currentDevice] orientation]如果 iPad 平放
我需要根据方向更改 View 的图像背景。为此,我在 viewWillAppear 中使用 statusBarOrientation 方法: - (void)viewWillAppear:(BOOL)
您好,在我的应用程序中,我想知道 statusbarorientation 值。为此,我正在使用 [UIApplication sharedApplication].statusBarOrientat
我正在尝试访问 UIApplication.shared.statusBarOrientation但我不断收到错误 UIApplication.statusBarOrientation() must
(Xcode 6、Swift、iOS8) 我正在尝试查找 iPad 的设备方向,它似乎不必要地复杂。我哪里错了? 起初,我尝试使用 UIViewController 的 interfaceOrient
这个问题似乎是间歇性的,但我不确定具体原因。在设备 (iPad) 上运行我的应用程序时,我有一些代码可以根据当前设备方向加载带有一些 ImageView 的 ScrollView 。尽管设备在加载前是
简单地说,我依靠以下代码来提供应用程序的方向。在应用程序中使用它有几个原因: 根据 UX 规范,stackview 的布局是根据 iPad 的方向设置的(横向时为水平,纵向时为垂直) 在上一项的基础上
我有一些代码,我曾经使用 presentingViewController.interfaceOrientation 来确定当前 UIViewController 支持的界面方向。由于 interfa
我是一名优秀的程序员,十分优秀!