lucky鲁大师 2022-11-09 11:55
浏览 23
已结题

iOS开发iPad分屏和屏幕镜像的问题

大家好,我现在有一个需求是这样的。在iPad上使用分屏功能,同一个APP可以创建多窗口。但是在分屏的同时,我需要用到屏幕镜像。在镜像屏幕上面,我只需要显示iPad上分屏的左侧那个视图(一个视频通话的页面),而右侧的视图不需要显示到镜像屏幕上。请问各位有什么解决方案吗?
目前我试过的方案有这几种:
1、使用window的方式,将新建的APP下sceneDelegate删除,这种情况可以通过系统的通知

UIScreenDidConnectNotification

UIScreenDidDisconnectNotification

来判断是否有外接镜像屏幕,并且可以自定义屏幕的内容。
但是这样的做法对我的需求来讲有两个缺点,第一就是APP无法使用多窗口,第二就是iPad上显示的内容无法和镜像屏幕上显示的内容共存(iOS的UIView只能有一个superView)

2、使用iOS13以后得SceneDelegat,通过这种方式可以实现一个APP的多窗口模式。开启多窗口的代码如下:

- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options {
    // Called when a new scene session is being created.
    // Use this method to select a configuration to create the new scene with.
    
    NSUserActivity *userActivity = options.userActivities.anyObject;
    NSString *activityType = userActivity.activityType;
    UISceneSessionRole role = connectingSceneSession.role;
    if (activityType == nil) {
        activityType = @"Default Configuration";
        role = UIWindowSceneSessionRoleApplication;
    }
    return [[UISceneConfiguration alloc] initWithName:activityType sessionRole:role];
    
//    return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role];
}

在这个方法中,role目前有两种模式,
1、UIWindowSceneSessionRoleApplication,这种模式下,可以单独将我的左侧视图镜像到外接屏幕上,但是这种情况下,镜像的屏幕上是个静态的页面,无法跟随iPad屏幕实现动态(只要能解决这个问题,我的需求就可以完美实现了)
2、UIWindowSceneSessionRoleExternalDisplay,这种模式下,镜像屏幕会将iPad的整个整个屏幕镜像到外接屏上,无法镜像单独的视图。(如果这种能够镜像单独视图也能完美解决我的需求)。

如果有哪位研究过这东西的,麻烦帮忙提供一下解决方案,谢谢。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月17日
    • 创建了问题 11月9日

    悬赏问题

    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 CSAPPattacklab
    • ¥15 一直显示正在等待HID—ISP
    • ¥15 Python turtle 画图
    • ¥15 stm32开发clion时遇到的编译问题
    • ¥15 lna设计 源简并电感型共源放大器
    • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)