iOS 14 Виджетов: Как создать разные макеты для каждого размера виджетов? - PullRequest
0 голосов
/ 04 августа 2020

Я хочу создать разные макеты для каждого размера виджета (то есть маленький, средний, большой). Как я могу разветвить свой код в соответствии с размером виджета?

1 Ответ

4 голосов
/ 04 августа 2020

Перечисление WidgetFamily ( Apple Documentation ) как часть WidgetKit позволит вам переключаться между различными размерами в вашем представлении и соответствующим образом настраивать. Установите это как переменную @Environment и включите доступные случаи:

  • .systemSmall
  • .systemMedium
  • .systemLarge
struct WidgetView : View {
   @Environment(\.widgetFamily) var family

    @ViewBuilder
    var body: some View {
        
        switch family {
        case .systemSmall:
            Text("Small")
        case .systemMedium:
            Text("Medium")
        case .systemLarge:
            Text("Large")
        default:
            Text("Some other WidgetFamily in the future.")
        }

    }
}
...