gpt4 book ai didi

ios - 在外部显示器上反射(reflect) UIView 行为

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:04:21 25 4
gpt4 key购买 nike

我正在开发一个使用外部显示器的应用程序。我有很多不同的 View 和控件,它们是根据从服务器获取的数据动态创建的。

假设这个 View 是动态创建的并且显示在 iPad 屏幕上(不是全屏):

enter image description here

当然很难控制和检测用户更改了哪些控件值,特别是滚动查看器和幻灯片等在外部显示器上实时显示更改。

有没有办法不向每个控件添加事件,然后在外部屏幕上修改控件实例,而是创建一个虚拟反射,将显示真实 UIView 的实时变化iPad?

最佳答案

AirPlay 镜像就是你要找的。 AirPlay 可以在两种模式下运行:

  • 整个屏幕被镜像到 AirPlay 设备
  • 有两个 UIWindow/UIScreen 可以使用,其中一个是镜像的。

因为您要镜像的 View 不是全屏的。您必须选择第二个选项。不幸的是,没有技术方法可以让 UIView 的单个实例显示在两个窗口上。

选项 1 - 双 View

如果你想在两个屏幕上显示相同的东西,你需要创建同一个UIView的两个实例,并将它们分别添加到两个窗口,然后更新它们改变。

选项 2 - UISnapshotting

另一种选择是设置一个计时器并每秒更新几次您要显示的窗口的内容。在 iOS 7 中,Apple 引入了 UISnapshotting,他们声称它非常快,比 renderInContext: 快得多。我还没有研究它的性能是否高到每秒调用它多次,但它应该可以工作。

UIView *snapshot = [view snapshotViewAfterScreenUpdates:YES];

This method captures the current visual contents of the screen from the render server and uses them to build a new snapshot view. You can use the returned snapshot view as a visual stand-in for the screen’s contents in your app. (...) this method is faster than trying to render the contents of the screen into a bitmap image yourself.

此外,请查看下面的链接。他们应该给您一些见解并指明正确的方向。

关于ios - 在外部显示器上反射(reflect) UIView 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24776037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com