sim*_*nbs 2 iphone cocoa-touch objective-c uiwebview uiappearance
我的应用程序仅支持纵向方向,但我有网页视图,其中我显示YouTube视频,当这个视频全屏播放时,我希望播放器能够进入风景.我如何仅支持视频的横向?
此外,我使用外观API在整个应用程序中设置导航栏的样式和栏按钮项.这也适用于电影播放器.如何在应用程序的其他部分中使用外观API时如何使用电影播放器的默认布局?
我设法解决了这两个问题.
对于旋转,请在目标摘要中启用横向方向.
然后将以下行添加到视图控制器.它应该足以将其添加到最顶层的控制器.例如,如果整个应用程序在导航控制器中运行,则可以对导航控制器进行子类化.
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
- (BOOL)shouldAutorotate
{
return NO;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}
Run Code Online (Sandbox Code Playgroud)
从技术上讲,我认为仅仅shouldAutorotate
返回NO
它就足够了,因为它不会在iOS 6上旋转然后如果你没有实现shouldAutorotateToInterfaceOrientation:
我相信它默认为iOS 5的上面.我喜欢包括它.
这将确保您的应用程序仅以纵向工作,但这不会对MPAVController(UIWebView用于显示视频)产生任何影响,因此它将正确旋转.
为了避免在MPAVController上设置外观,我将调用更改为外观API,例如:
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"MyBackgroundImage.png"] forBarMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)
至
[[UINavigationBar appearanceWhenContainedIn:[UINavigationController class], nil] setBackgroundImage:[UIImage imageNamed:@"NavigationBar_Background.png"] forBarMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)
因此,仅当导航栏包含在导航控制器中时才设置背景,导航控制器不在MPAVController中.
归档时间: |
|
查看次数: |
2095 次 |
最近记录: |