ipad 横向/纵向图像
Posted
技术标签:
【中文标题】ipad 横向/纵向图像【英文标题】:ipad landscape/ portrait image 【发布时间】:2012-09-07 02:24:05 【问题描述】:我正在处理 ipad 应用程序开发的 UI 问题(关于图像)。我已经阅读了苹果开发网站上的一些文档,但我找不到任何相关信息。
图像文件是否有任何文件约定来区分系统应为横向/纵向加载哪个图像。因为我看到启动图像,我们可以使用“MyLaunchImage-Portrait.png”和“MyLaunchImage-Lanscape.png”。我曾尝试将“-Landscape”、“-Portrait”、“-Landscape~ipad”、“-Portrait~ipad”添加到其他图像以供一般使用,但失败了。
有没有人遇到过这个问题?
【问题讨论】:
【参考方案1】:不幸的是,除了 iPad 的启动图像之外,没有标准的约定。但是,您可以使用NSNotificationCenter
来侦听方向更改事件并相应地响应它们。这是一个例子:
- (void)awakeFromNib
//isShowingLandscapeView should be a BOOL declared in your header (.h)
isShowingLandscapeView = NO;
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(orientationChanged:)
name:UIDeviceOrientationDidChangeNotification
object:nil];
- (void)orientationChanged:(NSNotification *)notification
UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation;
if (UIDeviceOrientationIsLandscape(deviceOrientation) &&
!isShowingLandscapeView)
[myImageView setImage:[UIImage imageNamed:@"myLandscapeImage"]];
isShowingLandscapeView = YES;
else if (UIDeviceOrientationIsPortrait(deviceOrientation) &&
isShowingLandscapeView)
[myImageView setImage:[UIImage imageNamed:@"myPortraitImage"]];
isShowingLandscapeView = NO;
【讨论】:
这是我使用的方式,不必使用通知中心来检测方向变化: - (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration - (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation以上是关于ipad 横向/纵向图像的主要内容,如果未能解决你的问题,请参考以下文章
LaunchScreen.storyboard 中 iPad 启动画面的不同背景图像,用于横向和纵向模式
您是不是需要一个横向的 iPad 启动图像来用于仅是纵向的应用程序