我正在使用带有xcode 4.5的故事板,在iOS 6上构建应用程序。我在mpvideoviewcontroller中有一个视频。当我观看视频时它会出现景观,但是对于所有其他视图(我喜欢歌曲和新闻),我如何为所有其他标签制作肖像?我只是希望视频在风景中。我有什么遗失的东西吗?每个选项卡上的方向为纵向,在xcode项目摘要屏幕上我左右启用。我为那些我想成为肖像的人添加了这行代码。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return NO;
}
有什么建议吗?
仅供参考:如果我在Xcode的摘要页面中将方向更改为仅纵向模式,则每个视图都是纵向的,我希望我的视频视图处于横向而非纵向模式。
答案 0 :(得分:1)
iOS 6在AppDelegate上支持这个
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
// check if you are in video page --> return landscape
return (isVideoPage)?UIInterfaceOrientationMaskAllButUpsideDown:UIInterfaceOrientationMaskPortrait;
}
希望有所帮助。
答案 1 :(得分:0)
将该方法更改为仅在纵向模式下返回true:
- (BOOL)shouldAutorotateToInterfaceOrientation (UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
答案 2 :(得分:0)
我想你可以做这样的事情在我的代码中,prevLayer是带有视频输入的视图,因为这个对象是AVCapture类型,它有setOrientation,但你可以做一个转换/旋转一定程度来匹配当前的方向,希望它会有所帮助。
-(void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
switch ([[UIDevice currentDevice]orientation]) {
case UIDeviceOrientationLandscapeLeft:
[self.prevLayer setOrientation:AVCaptureVideoOrientationLandscapeRight];
break;
case UIDeviceOrientationLandscapeRight:
[self.prevLayer setOrientation:AVCaptureVideoOrientationLandscapeLeft];
break;
default:
[self.prevLayer setOrientation:AVCaptureVideoOrientationLandscapeLeft];
break;
}
}