我正在使用 HDMI 电缆将我的 iPad 屏幕输出到电视。如果我将 iPad 保持在横向模式,则电视上的输出会以横向模式显示。如果我将它旋转到电视上的纵向输出,也会更改为纵向模式。
有没有办法限制这一点,即使我将 iPad 旋转到纵向,电视上的输出也应该保持横向
这里有一些图像可以清楚地说明我的问题
这是我的 iPad 的方向...
这就是我得到的…………
这就是我要的......
或者
从乱搞编程我已经走到了这一步..
我在带有一些图像的 UIImageView 上制作了一个按钮,在带有 IBaction 方法的 Xcode 的单个视图应用程序模板中,此方法具有以下代码
- (IBAction)screenButton:(id)sender {
NSLog(@"Screen Count %d",[[UIScreen screens]count]);
if([[UIScreen screens]count] > 1) {
CGSize max;
UIScreenMode *maxScreenMode;
for(int i = 0; i < [[[[UIScreen screens] objectAtIndex:1] availableModes]count]; i++)
{
UIScreenMode *current = [[[[UIScreen screens]objectAtIndex:1]availableModes]objectAtIndex:i];
if(current.size.width > max.width)
{
max = current.size;
maxScreenMode = current;
}
}
//UIScreen *external = [[UIScreen screens] objectAtIndex:0];
UIScreen *external = [[UIScreen screens] objectAtIndex:1];
external.currentMode = maxScreenMode;
//external_disp = [externalDisplay alloc];
//external_disp.drawImage = drawViewController.drawImage;
// ExternalDisplayOn = TRUE;
//UIImageView *extView = [[UIImageView alloc] init];
_extView.hidden=FALSE;
_extView.frame = external.bounds;//MyMainScrollView.frame;
UIWindow *newwindow = [[UIWindow alloc] initWithFrame:_extView.frame];
//UIWindow *newwindow = [[UIWindow alloc];
[newwindow addSubview:_extView];
newwindow.screen = external;
newwindow.hidden=NO;
[[[UIAlertView alloc] initWithTitle:@"Alert Showed" message:[NSString stringWithFormat:@"_extView.frame X %f, Y %f, W %f, H %f, Screen Count %d",_extView.frame.origin.x,_extView.frame.origin.y,_extView.frame.size.width,_extView.frame.size.height,[[UIScreen screens]count]] delegate:nil cancelButtonTitle:@"OK!" otherButtonTitles:nil, nil] show];
[newwindow makeKeyAndVisible];
}
}
我能够在一定程度上解决我的问题,但我面临的问题如下
每当我运行应用程序并将其保持在纵向模式时,电视上的输出就是我 iPad 屏幕的精确复制品。
现在,当我按下上面分配了代码的 UIButton 时。一个 UIAlertView 出现在 iPad 屏幕上(但不在电视屏幕上)。并且我的 iPad 在纵向模式下电视上的方向变为横向(实际上这正是我真正想要做的)....
但是当我按下 UIalertView 的取消按钮来关闭警报视图时。电视输出方向再次变为纵向模式....
当 UIAlertView 出现时,有没有办法防止我的情况发生。这将解决问题..