问题标签 [uideviceorientation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1362 浏览

objective-c - 图像没有填满整个 uiimageview 的宽度和高度

我有以下代码:

当以横向模式拍摄图像时,无论是向左还是向右,uiimageview 中呈现的图像都不会填满整个 frame.size 并且总是“短”

有人可以在我的代码中修复/添加什么吗?

0 投票
2 回答
2495 浏览

ios - UIDeviceOrientationDidChangeNotification 多次调用

UIDeviceOrientationDidChangeNotification 在设备改变方向时多次调用。我不确定为什么会发生这种情况或如何解决它。

我想要做的是保持滚动视图的 contentoffset 相同,因此当用户旋转屏幕时,应用程序会保留他们所在的页面。

奇怪的是,当我第一次像我想要的那样执行代码时旋转屏幕。但之后每次代码都会执行多次,最终 contentoffset 设置为 0。

这就是我所拥有的。

在方向更改时,我更改“int方向”的值,然后调用 loadview 来更改视图的大小。然后我调用 viewdidload 来获取正确的 contentoffset

编辑:

我发现了问题。我正在做的是创建另一个 self.view 实例而不是覆盖这个实例。有没有简单的方法来破坏这个视图并重新初始化它?

编辑2:

找到了解决办法。根据 jsds 的说明,我停止调用 loadview 和 viewdidload。而是将我的 loadview 中的所有代码移动到我从 loadview 调用的另一个函数中。这段代码所做的只是实例化 UI (initview) 对象并根据方向将它们放置在正确的位置。

然后我创建另一个从视图中删除所有子视图的函数。然后在方向改变时,我调用这个函数和我的 initview 来销毁所有子视图,然后在方向改变时重新创建它们。

0 投票
1 回答
274 浏览

ios7 - 仅旋转 uiviewcontroller 的子视图

我阅读了其他问题,但对于我可以对这个问题做些什么并不是很清楚。还是决定问问。

所以我有一个 UIViewController,其中我阻止了自动旋转。

我调出添加到控制器的子视图之一。现在,我旋转设备。这个 UIView 应该改变方向,我将使用自动布局来支持这个视图上的所有方向。

这可能吗?

我尝试的是,监听设备方向的变化,然后将方向发送到子视图,然后可能transform会思考,但这并不准确,而且可能需要做很多工作。

有什么线索吗?

0 投票
1 回答
800 浏览

ios - UIDeviceOrientationDidChangeNotification 返回错误的方向

我有一个UIScrollView带有子视图的子视图,我必须在方向更改时更新其框架。我一直在iPhone模拟器上运行该程序,但看起来UIDeviceOrientationDidChangeNotification它没有返回设备的正确方向。UIInterfaceOrientationPortrait当我旋转时它会返回,UIInterfaceOrientationLandscapeLeft/Right反之亦然。我没有正确使用它还是必须使用其他处理方向变化的方法?

0 投票
1 回答
446 浏览

ios - 苹果可以拒绝强制改变方向吗?

为了强制改变设备方向,我从这里获取代码

但苹果可以拒绝使用的应用程序setOrientation:吗?有一些经验吗?

或者可能有人有100%的工作并且不能被Apple拒绝,解决方案?

好的,谢谢,我会试试这个片段。

0 投票
1 回答
1226 浏览

ios - 当方向锁定打开且应用程序仅支持纵向时,如何检测设备方向

我遇到的问题是,当用户使用我们的应用程序拍照时,使用AVCaptureSession,我无法确定他们是在纵向还是横向模式下拍摄照片。我们的应用程序仅支持肖像,并且我在使用手机时保持方向锁定,因此我正在尝试构建一个解决方案,假设其他人可能会这样做。

我研究过使用[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications],但是当方向锁定打开时,没有收到任何通知。我知道这个功能是可行的,因为当我的手机打开方向锁定时,基本相机应用和 Google Hangouts 应用中的相机可以检测到旋转(取消和 Flash 按钮上的动画很明显)。

我最好的选择是使用加速度计并检测手机旋转的角度吗?一个旧的答案,Detect iPhone screenorientation ,很明显,以这种方式检测角度很容易做到(显然将答案调整为使用 Core Motion 而不是 UIAccelerometer),但我很好奇是否还有另一种方法可以做它。

0 投票
2 回答
136 浏览

ios - iPhone 界面方向不正确

在 iPhone 上 - 我的第一个ViewController支持所有界面方向。不过,最初的行为是,当我启动应用程序时,主屏幕ViewController应该始终是纵向的。

为了克服在应用启动时手机处于横向的情况,我创建了一个ViewController只支持纵向的假人,从它启动应用程序并立即推送 main ViewController。确实主要ViewController是纵向的,但是在执行时:

self.interfaceOrientation

结果是横向(如手机的方向)。
我希望它会返回肖像,这会导致问题。
在这种情况下,我怎样才能获得设备的真实方向ViewController而不是设备?

0 投票
3 回答
949 浏览

objective-c - 旧项目的 iOS8 测试版中的相机无法正确旋转

我正在开发一个使用旧 X-Code 版本创建的 iOS 应用程序,因此它在 MainWindow.xib 中有窗口。最近在 iOS8 Beta 版本中运行这个项目时,我遇到了一个问题:窗口没有横向旋转。所以我在 MainWindow.xib 中添加了另一个窗口。我设置了 if 条件来检查操作系统版本,对于较旧的 iOS 版本,我使用以前创建的窗口,但对于 iOS8,我使用新添加的横向窗口。我已经解决了这个问题。除相机外,整个应用程序工作正常。

以下是屏幕截图。

在 LandscapeMode 中(它工作正常): 在此处输入图像描述

在 PortraitMode(一旦相机被加载,我已经旋转它,这里其他控件旋转正常,但相机过度旋转不正确):

在此处输入图像描述

以横向模式加载相机后,我旋转了设备,控件正常旋转但相机屏幕没有旋转,它仍处于纵向模式。这可能是由于 Appdelegate 中的窗口所致。

有什么解决办法吗?

提前致谢。

0 投票
11 回答
16242 浏览

ios - Get device current orientation (App Extension)

How to get device current orientation in an App Extension, I have tried below two methods but no success.

  1. It always return UIDeviceOrientationUnknown

    /li>
  2. It shows red message that ‘sharedApplication’ is not available on iOS (App Extension)

    /li>
  3. I also add an observer but it not getting called.

    /li>

So now how can anyone get current device orientation.

0 投票
3 回答
995 浏览

ios - 在 UIInputViewController 子类中检测旋转。键盘扩展

我一直在开发自定义键盘扩展,我需要在设备旋转后以编程方式更新一些约束。我一直在尝试在我的 UIInputViewController 子类中检测用户界面旋转,但没有成功。设备旋转时不会调用这些方法:

-(void)willTransitionToTraitCollection:(UITraitCollection *)newCollection withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>) coordinator { NSLog(@"Orientation changed"); }

-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator { NSLog(@"Orientation changed"); }

我也尝试过观察UIDeviceOrientationDidChangeNotification,但它也不起作用。

有谁知道如何检测旋转UIInputViewController