iOS模拟器无法正确刷新

时间:2018-02-13 18:41:49

标签: ios xcode button simulator

我尝试模拟我在Xcode 9中创建的一个非常简单的应用程序。我尝试在带有iOS 11.2的iPhone6中的iOS模拟器中模拟它。我还测试了其他具有相同结果的设备。

在真实设备上,该应用按预期工作。但在模拟器上却没有。

我希望,点击它后按钮会变成橙色。表情符号应该消失。相反,它变成了一些奇怪的“阴影”外观。如果我等待,那么按钮有时会在大约30秒后将其背景变为橙色。

我已经录制了一个gif,以说明问题所在。

http://www.giphy.com/gifs/l4pSUuBtN7aBVvbVe

更新

这是另一个GIF:http://www.giphy.com/gifs/26DNe5B0vxIO6pHiw 我一拖下信息中心,按钮就会刷新。

开发机器:Mac mini 2011,i5,SSD,8GB RAM,高Sierra

希望有人可以帮助我。

更新:15.02.18 问题仅出现在从10及以上开始的iOS版本中。 使用iOS版本9.0,没有问题。期待没有任何表情符号......

与此同时,我已向苹果提交了一份错误报告。但我认为对此没有任何回应。

看起来其他人遇到同样的问题:https://forums.developer.apple.com/thread/96511

3 个答案:

答案 0 :(得分:7)

我终于找到了解决此问题的方法!

对于没有缺口的模拟器,请在启动应用程序时进行设置:

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

Swift 4.1:

UIApplication.shared.isNetworkActivityIndicatorVisible = true

,并且永远不要将其设置回NO。这将在状态栏中显示少量加载指示器,这将使模拟器持续处于活动状态并解决您的问题。

请不要忘记确保您不在生产配置中使用它

在状态栏(iPhone X)上带有槽口的仿真器不会显示活动指示器,但是您可以使用“硬件”>“切换通话中的状态栏”,因为通话中的图标会发出动画,并且还会保持屏幕显示活跃。

答案 1 :(得分:1)

Found a workaround here (after looking at your link to Apple forum): https://forums.developer.apple.com/thread/88446

In Terminal:

  • If you have a discrete GPU in the system (eg: MBP 15" with Radeon HD 6750M):

    defaults write com.apple.CoreSimulator.IndigoFramebufferServices FramebufferPerformanceHint 2
    
  • If you do NOT have a discrete GPU in the system (eg: MBP 13" or MacMini)

    defaults write com.apple.CoreSimulator.IndigoFramebufferServices FramebufferEmulationHint 1
    

To be sure, try both options. First option helped me (although I have MBP 13" Early 2011).

答案 2 :(得分:1)

我有同样的问题,即模拟器无法更新数据库中的更改。 您可能对缓存有疑问,模拟器可能需要重置。

尝试退出iPhone Simulator,然后在终端中运行xcrun:

xcrun simctl erase all