当前位置: 首页 > 面试题库 >

iOS:设备旋转后如何运行功能(快速)

汪弘盛
2023-03-14
问题内容

我有一个不使用自动布局的UIView,并且根据其在主视图中X和Y坐标的百分比显示了一些组件。

以前,我会运行一个函数来更新它们在didRotateFromInterfaceOrientation中的位置,但是我看到现在iOS8中已弃用此功能

我看过viewWillTransitionToSize,但是它给出了奇怪的结果,并且似乎没有viewDidtransitionToSize函数。

设备旋转后,是否有一种简便的方法(在Swift中)运行函数?


问题答案:

viewWillTransitionToSize委托方法被调用了UIViewControllerTransitionCoordinator符合对象。协议声明的方法是animateAlongsideTransition(_:animation, completion:)。您可以使用它来使代码在转换完成后执行。

override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator)
    coordinator.animateAlongsideTransition(nil, completion: {
        _ in

        // Your code here
    })
}


 类似资料:
  • 我有一个聊天应用程序,可以打开一个到服务器的Websocket。该应用程序有2个模块- chat sdk:处理连接和来回消息传递。 用户界面:处理适配器和视图 聊天UI位于活动托管的片段上。 一切都很好,但当我决定在设备旋转上使用持久性时,我遇到了问题。当我旋转设备时,websocket重新连接(这是正常的),活动被重新创建,片段也被重新创建。 经过设备旋转和一些调试,我看到我的消息列表被正确填充

  • 问题内容: 我正在尝试使用某些功能 但是从后台进入应用程序后,当该应用程序处于活动状态时,该功能似乎根本无法运行。 函数看起来像这样 并使用这个变量 我错过了什么? 谢谢! 问题答案: 将创建ViewController的新实例并调用此函数。然后,由于不使用视图控制器,它将被垃圾回收/从内存中删除。您需要在使用中的实际视图控制器上调用此方法。不是它的新实例。 最好的选择是监听iOS提供的通知。 确

  • 我想连接一个android设备直接从我的环境android studio测试我的应用程序 android Studio-http://developer.android.com/sdk/index.html 我有一个三星galaxy s5设备,我已经把它连接到usb上,我已经安装了这个驱动程序: http://developer.samsung.com/technical-doc/view.do?

  • 我正在编写一个应用程序,它有一个带有按钮和图像的菜单。我按下按钮,按钮的标签从“录制曲目”更改为“停止录制”。问题是,当我旋转设备时,带有按钮的活动会被操作系统终止。因此,我知道我必须在数据在方法中被杀死之前保存数据,然后在我的method中恢复数据。类似这样: 和: 虽然它完美地恢复了我的图像,但我的菜单仍然有问题:由于某些原因,它总是保持为“空”,因此它永远不会更改按钮的标签,尽管每次“活动”

  • 我有一个这样的运行测试类。 我有4个cucumber功能文件在src/test/资源/功能。当我尝试运行此测试(4个cucumber功能)时,我得到了错误: 我试着给Cucumber选项一个完整的路径,但效果不太好。有人能帮我吗?非常感谢。

  • 我正在使用Appium在Android(4.4x)和iOS(9x)的真实设备上实现移动原生应用程序自动化。一些测试用例包括以下要自动化的操作: null 适当的Appium命令不起作用 IOS中没有adb等替代方案 无法访问的可执行这些操作的对象 感谢你的帮助