SwiftUI で異なるビュー構成を使用する場合、次の 2 つのアプローチを取ることができます。
- ビュー内で @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()
}
}
}
}
どちらが優れているのだろうか、どうすればそれを測定できるのでしょうか?
分析的には、2 番目の方が大きなビュー チャンクでパフォーマンスが優れているように思えます。特に、プレビューの読み込み時間で確認できますが、手がかりはありません。