2

外部 UIScreen のモードを解像度 1024x768 で実行するように設定する必要があります。まず、画面がこの解像度をサポートしているかどうかを検索します。

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;
       }
    }
}

その後、この解像度を使用するように外部画面のモードを設定しましたが、どういうわけか機能せず、画面は他のデフォルトの解像度を使用しています。

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

...


secondWindow.hidden = NO;

助けはありますか?多分私はいくつかの設定を見逃しましたか?私もこれで試しました:

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

1 に答える 1

2

解決策を見つけました。問題は、外部スクリーンが iOS デバイスに接続されているときに、スクリーンのモードを変更する必要があることでした。

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

画面モードは、screenDidConnectNotification 関数で変更する必要があります。

于 2013-11-06T13:35:55.330 に答える