如何解决SwiftUI,在 ZStack 中使用 ForEach 会导致屏幕闪烁
注意:在这两种情况下,navigationLevelsstack
只有 1 个元素
这似乎只取决于 router1()
使用 ForEach
的事实?
有没有办法让 ForEach
不引起这种闪烁?
@viewbuilder func router1(_ stateProvider: StateProvider,_ events: Events) -> some View {
ZStack {
ForEach(navigationLevelsstack,id: \.self.URI) { screenIdentifier in
self.screenPicker(screenIdentifier)
}
}
}
@viewbuilder func router2(_ stateProvider: StateProvider,_ events: Events) -> some View {
ZStack {
self.screenPicker(navigationLevelsstack.last!)
}
}
}
解决方法
我找到了原因:
因为@echo off
mode con: cols=80 lines=27
title Connection Restart
color 1f
cls
echo This program restarts Internet Connection adapter.
echo.
echo List of network adapters (Internet adapters)
netsh interface show interface
echo ==========================================================================
:: Setting Interface Name
set InterfaceName=Local Area Connection
:Disadling adapter
echo. & echo
echo RESTARTING "%InterfaceName%" adapter. WAIT...
netsh interface set interface "%InterfaceName%" disable
echo "%InterfaceName%" adapter disabled. Wait...
echo. & echo.==========
timeout /t 5 >nul
:Enabling adapter
netsh interface set interface "%InterfaceName%" enable
echo "%InterfaceName%" adapter Enabled. Wait...
echo. & echo.==========
echo Procedure completed successfully
timeout /t 6 >nul
EXIT
是一个计算属性,所以每次被调用都要花时间处理。
更新:
其实原因并不是因为 self.URI
是一个计算属性。
这与旧的 ForEach .URI
值被新的 ForEach id
值替换这一事实有关。如果您想避免闪烁,可以渲染不同的视图,但 ForEach id
应保持不变。所以,它是一个索引号是有道理的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。