以您期望的方式为该列表中的元素创建List视图时onAppear:只要滚动到该元素,onAppear就会触发。但是,我正在尝试实现这样的水平列表
ScrollView(.horizontal) {
HStack(spacing: mySpacing) {
ForEach(items) { item in
MyView(item: item)
.onAppear { \\do something }
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用此方法onAppear一次触发所有项目,也就是说:立即,但我想要与List视图相同的行为。我该怎么做呢?是否有手动触发 onAppear 或控制视图加载的方法?
为什么我要实现这一点:我制作了一个自定义Image视图,仅当它出现时才从 URL 加载图像(并同时替换占位符),这对于List视图来说效果很好,但我也希望它为我的水平“列表”工作。
我想在SwiftUI中手动将视图的框架高度设置为屏幕安全区域的大小。获取屏幕边界(UIScreen.main.bounds)很容易,但是我找不到找到安全区域大小的方法。
swiftui ×2