设置UIScreen的模式/分辨率 [英] Setting UIScreen's mode / resolution

查看:176
本文介绍了设置UIScreen的模式/分辨率的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须将外部UIScreen的模式设置为以1024x768的分辨率运行。
首先我搜索屏幕是否支持此分辨率:

I have to set the external UIScreen's mode to run with the resolution 1024x768. First I search if the screen supports this resolution:

if ([[UIScreen screens] count] > 1){

    CGSize size1024;
    size1024.height = 0;
    size1024.width  = 0;
    UIScreenMode *screenMode1024 = nil;
    UIScreen *secondScreen = [[UIScreen screens] objectAtIndex:1];

    for(int i = 0; i < [[secondScreen availableModes] count]; i++)
    {
       UIScreenMode *current = [[[[UIScreen screens] objectAtIndex:1] availableModes] objectAtIndex: i];
       if (current.size.width == 1024.0 && current.size.height == 768.0)
       {
           size1024 = current.size;
           screenMode1024 = current;
           break;
       }
    }
}

之后我设置外部屏幕的模式使用此分辨率,但不知何故它不起作用,屏幕使用其他,默认分辨率。

After that I set the external screen's mode to use this resolution, but somehow it does not work and the screen is using other, the default resolution.

secondScreen.currentMode = screenMode1024;
UIWindow *secondWindow = [[UIWindow alloc] initWithFrame: CGRectMake(0,0, size1024.width, size1024.height)];
secondWindow.screen = secondScreen;

...


secondWindow.hidden = NO;

任何帮助?也许我错过了一些设置?我也试过这个:

Any help ? Maybe I missed some settings ? I also tried with this :

[[[UIScreen screens] objectAtIndex:1] setCurrentMode:screenMode1024];


推荐答案

我找到了解决方案。
问题是当外部屏幕连接到iOS设备时必须更改屏幕模式。

I found the solution. The problem was that the screen's mode has to be changed when the external screen is connected to the iOS device.

[[NSNotificationCenter defaultCenter] addObserver: self selector:@selector(screenDidConnectNotification:) name: UIScreenDidConnectNotification object: nil];

屏幕模式应该在screenDidConnectNotification函数中更改。

The screen mode should be changed inn the screenDidConnectNotification function.

这篇关于设置UIScreen的模式/分辨率的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆