iOS 项目适用于 iPhone,但不适用于模拟器
Posted
技术标签:
【中文标题】iOS 项目适用于 iPhone,但不适用于模拟器【英文标题】:iOS project works on iPhone but not in simulator 【发布时间】:2015-01-16 23:18:31 【问题描述】:你好,
我的 ios 项目支持横向并在我的 iPhone 4s 7.1.2 上完美运行,但不能在模拟器中运行。
这里有一些截图:
iPhone Landscape
Simulator Landscape
两个屏幕截图都是在横向模式下拍摄的,模拟器似乎没有正确调整板子的大小
这里是我用来改变方向的代码。
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
[UIView animateWithDuration:duration animations:^
[[UIApplication sharedApplication] setStatusBarHidden:YES];
int width = [[UIScreen mainScreen] bounds].size.width - [[UIApplication sharedApplication] statusBarFrame].size.width - 10;
int height = width;
int x = 5;
int y = ([[UIScreen mainScreen] bounds].size.width / 2) - (width / 2);
[board setFrame:CGRectMake(x, y, width, height)];
];
else
[UIView animateWithDuration:duration animations:^
[[UIApplication sharedApplication] setStatusBarHidden:NO];
[board setFrame:CGRectMake(0, [UIApplication sharedApplication].statusBarFrame.size.height, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.width)];
];
感谢您的帮助:)
【问题讨论】:
你设置断点来看看你得到了什么值吗? 据我所知,willAnimateRotationToInterfaceOrientation 在模拟器上不起作用,因为它是由 iPhone 设备的加速度传感器触发的。显然,模拟器没有。 你可以在 iOS 模拟器 -> 硬件 -> 向左旋转/向右旋转 【参考方案1】:我没有尝试过您的代码,但我坚信您看到的内容是由已弃用的 API 引起的。 Official documentation here 提供了详细信息,而满足您需求的新 API 是 viewWillTransitionToSize:withTransitionCoordinator:
还有一些关于***的其他问题,比如谈论解决方案:willAnimateRotationToInterfaceOrientation not called on ios6/7
【讨论】:
你说得对,willAnimateRotationToInterfaceOrientation:duration: 在 iOS 8 中已被弃用...我试过 viewWillTransitionToSize:withTransitionCoordinator: 它似乎在模拟器上运行良好。非常感谢 很高兴为您提供帮助。另外,感谢您给我一个“答案”标记和 1UP :)以上是关于iOS 项目适用于 iPhone,但不适用于模拟器的主要内容,如果未能解决你的问题,请参考以下文章
AVPlayerViewController 视频适用于 iOS 11、12,但不适用于 iPhone 11 的 iOS 13
CoreData 适用于我的模拟器,但不适用于使用 xCode 6 的 iOS 8 Swift 中的 iPhone
iOS UIActionSheet 回调适用于模拟器,但不适用于手机
screenShot代码不适用于ipad,适用于iphone