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 指示器,但您可以使用硬件 > 切换通话中状态栏,因为在-呼叫图标是动画的,也会使屏幕保持活动状态。
我尝试模拟我在 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 指示器,但您可以使用硬件 > 切换通话中状态栏,因为在-呼叫图标是动画的,也会使屏幕保持活动状态。