iOS模拟器没有正确刷新

iOS Simulator does not refresh correctly

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

在真实设备上,该应用程序按预期运行。但是在模拟器上它没有。

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

我录了一个gif,来说明问题。

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

更新:

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

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

希望有人能帮助我。

更新:15.02.18 该问题仅出现在 iOS 版本从 10 及更高版本开始。 使用 iOS 版本 9.0 没有问题。预计没有任何表情符号...

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

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

在这里找到了解决方法(在查看您的 link to Apple 论坛之后): https://forums.developer.apple.com/thread/88446

在终端中:

  • 如果系统中有独立的 GPU(例如:MBP 15" 和 Radeon HD 6750M):

    defaults write com.apple.CoreSimulator.IndigoFramebufferServices FramebufferPerformanceHint 2
    
  • 如果您的系统中没有独立的 GPU(例如:MBP 13" 或 MacMini)

    defaults write com.apple.CoreSimulator.IndigoFramebufferServices FramebufferEmulationHint 1
    

为了确定,请尝试这两个选项。第一个选项帮助了我(尽管我有 2011 年初的 MBP 13")。

我遇到了模拟器没有更新数据库更改的同样问题。 您可能有缓存问题,模拟器可能需要重置。

尝试退出 iPhone 模拟器,然后在终端中 运行 xc运行:

xcrun simctl erase all

iOS 13 更新:对所有 iOS 13 或更高版本的设备使用 Hardware > Toggle In-call Status Bar 选项。所有设备的 activity 指示符都消失了。好在通话中状态栏不再改变布局大小

--

我终于找到了解决方法!

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

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

Swift 4.1:

UIApplication.shared.isNetworkActivityIndicatorVisible = true

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

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

状态栏中带有缺口的模拟器 (iPhone X) 不显示 activity 指示器,但您可以使用硬件 > 切换通话中状态栏,因为在-呼叫图标是动画的,也会使屏幕保持活动状态。