SwiftUI Why can I return multiple views for PreviewProvider

Viewed 196

I noticed that I can do this:

struct HomeView_Previews: PreviewProvider {
  static var previews: some View {
    HomeView()
    HomeView()
    HomeView()
  }
}

The type is some View, which is a single view. Why can I return 3 HomeViews here? (I don't think this is inside a resultBuilder block because it's clearly a getter function body here, or am I wrong?)

1 Answers

This property has ViewBuilder wrapper, as declared:

public protocol PreviewProvider : _PreviewProvider {
    // ... other declarations here

    @ViewBuilder static var previews: Self.Previews { get }

And ViewBuilder can wrap here up to 10 different views, similarly as in any other place, ex. View.body.

Actually you should not think about concrete type in such case, but it will be rather

TupleView<(HomeView, HomeView, HomeView)>
Related