在 SwiftUI 中使用不同的视图组合时,我们可以采取两种方法:
- 要在视图中使用一些 @ViewBuilder 函数作为辅助函数:
@ViewBuilder func makeButtonLabel() -> some View {
if isPlaying {
PauseIcon()
} else {
PlayIcon()
}
}
- 要为该 UI 片段创建不同的视图:
struct SongRow: View {
var song: Song
@Binding var isPlaying: Bool
...
var body: some View {
HStack {
if isPlaying {
PauseIcon()
} else {
PlayIcon()
}
}
}
}
我想知道哪个更好,我们如何衡量它?
从分析上看,在我看来,第二个在更大的视图块中具有更好的性能,尤其是我们可以在预览的加载时间看到它,但我对此一无所知。