Виджет не работает в iOS 17. Используйте API-интерфейс контейнера.IOS

Программируем под IOS
Ответить
Гость
 Виджет не работает в iOS 17. Используйте API-интерфейс контейнера.

Сообщение Гость »


При разработке виджетов для iOS 17 я столкнулся с проблемой, что виджеты не работали. Предварительный просмотр показывает только ошибку —ContainerBackground API Читал подобные статьи по этому поводу, и там говорят, что нужно использовать

расширение View { func widgetBackground(_ backgroundView: some View) -> some View { if #available(iOSApplicationExtension 17.0, *) { returnContainerBackground(for:.widget) { фонПросмотр } } еще { вернуть фон (backgroundView) } } но у меня это не работает

У меня есть простой виджет, показывающий время. Я предоставлю код ниже
struct TimeWidgetEntryView: Просмотр { запись переменной: TimeWidgetProvider.Entry var body: some View { если пусть часы = UserDefaultStorage.shared.standByClockValue, случай .single(let model) = clock.blockType { ZStack { Изображение(lock.imageName ?? "текстура - 1") Текст (DateFormatter.hourAndMinute.string (от: вход.дата)) .font(.custom(model.font.fontName, размер: 50)) .foregroundColor(Цвет(model.textColor)) if !UserDefaultStorage.shared.hasPremiumStatus, UserDefaultStorage.shared.isLastTryTime { ПремиумВью() } } .widgetBackground(Color.black) } еще { если !UserDefaultStorage.shared.hasPremiumStatus { ZStack { ВиджетEmptyView() .widgetBackground(Цвет.черный) } } } } } структура WidgetEmptyView: Просмотр { var body: some View { ZStack { Изображение("текстура - 1") .scaledToFill() Черный цвет ВСтек { Изображение("Кадр 11114563") .изменяемый размер() .padding(.дно, 10) .frame(ширина: 70, высота: 70) Текст("Выберите часы") .foregroundColor(.white) .frame(ширина: 150) .multilineTextAlignment(.center) .font(.custom("Гилрой-Болд", размер: 20)) .dynamicTypeSize(.medium) } } } }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»