我正在使用HDMI电缆将iPad屏幕的输出传输到电视。
如果我将iPad保持在横屏模式,电视上的输出就会呈现横向模式。如果我将其旋转为纵向,则电视上的输出也会改变为纵向模式。
有没有办法限制这一点?即使我将iPad旋转到纵向方向,电视上的输出也应该保持在横向。
这里有一些图片可以清楚地说明我的问题。
这是我的iPad的方向...
![enter image description here](https://istack.dev59.com/5jeo8.webp)
这是我得到的...
![enter image description here](https://istack.dev59.com/QSzzb.webp)
这是我想要的...
或![enter image description here](https://istack.dev59.com/wg3og.webp)
通过编程调试,我已经实现了以下过程:
我创建了一个带有图像的UIImageView按钮,在Xcode的单个视图应用程序模板中使用了一个IBAction方法,该方法具有以下代码:
我在一定程度上解决了我的问题,但我现在面临的问题是:
每当我运行应用程序并将其保持在竖屏模式下时,电视上的输出与我的iPad屏幕完全相同。
现在,当我按下我分配的代码的UIButton时,在iPad屏幕上会出现一个UIAlertView(但不会显示在电视屏幕上)。而且,TV的方向会从我的iPad的竖屏模式变为横屏模式(实际上这正是我想要做的)....
但是,当我按下UIalertView的取消按钮以关闭alertView时,TV输出的方向再次改变为竖屏模式....
有没有办法防止发生在我的情况中的事情,当UIAlertView出现时。这将解决问题..
如果我将iPad保持在横屏模式,电视上的输出就会呈现横向模式。如果我将其旋转为纵向,则电视上的输出也会改变为纵向模式。
有没有办法限制这一点?即使我将iPad旋转到纵向方向,电视上的输出也应该保持在横向。
这里有一些图片可以清楚地说明我的问题。
这是我的iPad的方向...
![enter image description here](https://istack.dev59.com/5jeo8.webp)
这是我得到的...
![enter image description here](https://istack.dev59.com/QSzzb.webp)
这是我想要的...
![enter image description here](https://istack.dev59.com/9MDvs.webp)
![enter image description here](https://istack.dev59.com/wg3og.webp)
通过编程调试,我已经实现了以下过程:
我创建了一个带有图像的UIImageView按钮,在Xcode的单个视图应用程序模板中使用了一个IBAction方法,该方法具有以下代码:
- (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时,在iPad屏幕上会出现一个UIAlertView(但不会显示在电视屏幕上)。而且,TV的方向会从我的iPad的竖屏模式变为横屏模式(实际上这正是我想要做的)....
但是,当我按下UIalertView的取消按钮以关闭alertView时,TV输出的方向再次改变为竖屏模式....
有没有办法防止发生在我的情况中的事情,当UIAlertView出现时。这将解决问题..