适用于不同 iPhone 尺寸的多个故事板
Posted
技术标签:
【中文标题】适用于不同 iPhone 尺寸的多个故事板【英文标题】:Multiple storyboards for different iPhone sizes 【发布时间】:2016-08-25 20:05:56 【问题描述】:我在didFinishLaunching 的appDel.m 中设置了以下代码。 我目前有 2 个故事板 iPhone 5 和 iPhone 6。问题是我使用的代码没有选择 iPhone 5 故事板,它始终默认为 iPhone 6。
UIStoryboard *storyBd;
CGSize result = [[UIScreen mainScreen]bounds].size;
CGFloat scale = [UIScreen mainScreen].scale;
result = CGSizeMake(result.width, result.height * scale);
NSLog(@"The Result height is %f",result.height);
if (result.height == 1136)
storyBd = [UIStoryboard storyboardWithName:@"i5Story" bundle:nil];
UIViewController *initView = [storyBd instantiateInitialViewController];
[self.window setRootViewController:initView];
else if (result.height == 1334)
storyBd = [UIStoryboard storyboardWithName:@"i6Story" bundle:nil];
UIViewController *initView = [storyBd instantiateInitialViewController];
[self.window setRootViewController:initView];
【问题讨论】:
result.height
的日志输出是什么?
【参考方案1】:
那是因为高度不是1136
,而是568
。您无需寻找视网膜高度 (1136),只需寻找正常的“1x”像素大小。
另外你真的不应该这样做,而是使用自动布局并制作一个故事板。
【讨论】:
但是 OP 将屏幕高度乘以屏幕比例,因此结果将以像素为单位,而不是点。 哦!好的,是的,但是我的 vc 太复杂了,无法自动布局,为了让它正常工作,我苦苦挣扎了好几个星期。 而且这种情况永远不会依赖于市场上具有新尺寸的新设备,因此您确实应该考虑使用通用理念,例如将单一故事板约定作为标记。 是的,我想是的,会再试一次。我同意,只是很难做到正确。以上是关于适用于不同 iPhone 尺寸的多个故事板的主要内容,如果未能解决你的问题,请参考以下文章