Предотвратить масштабирование фонового представления в Swiftui, когда.IOS

Программируем под IOS
Ответить
Anonymous
 Предотвратить масштабирование фонового представления в Swiftui, когда.

Сообщение Anonymous »

Я хочу представить лист поиска над картой, похожей на карты Apple. Тем не менее, использование листа по умолчанию Swiftui (Ispresented: OnDismiss: Content :) фон масштабируется, что приводит к неожиданным скачкам в базовой карте при увольнении листа. src = "https://i.sstatic.net/m6fz55zpm.jpg"/>
my app:
Изображение

The scaling behavior is only Присутствует, когда я представляю лист через текст поиска @focusedState (запустите его на симуляторе или на устройстве, поскольку предварительные просмотра Xcode не могут показывать клавиатуру):

Код: Выделить всё

import SwiftUI
import MapKit

struct ContentView: View {
@State private var showSheet = true

var body: some View {
Map()
.sheet(isPresented: $showSheet) {
MinimalSearchSheet()
}
}
}

struct MinimalSearchSheet: View {
@State private var searchQuery = ""
@State private var selectedDetent: PresentationDetent = .fraction(0.1)
@FocusState private var isSearchFocused: Bool

var body: some View {
VStack {
HStack {
Image(systemName: "magnifyingglass")
TextField("Search", text: $searchQuery)
.padding(12)
.background(Color.gray.opacity(0.1))
.cornerRadius(8)
.focused($isSearchFocused)
}
.padding()

Spacer()
}
.presentationDetents([.fraction(0.1), .fraction(0.333), .fraction(0.999)], selection: $selectedDetent)
.interactiveDismissDisabled()
.onChange(of: isSearchFocused) {_, focused in
if focused {
selectedDetent = .fraction(0.999)
}
}
}
}

struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Я предполагаю, что она имеет какое -то отношение к клавиатуре, нажимая на представление, потому что я не могу установить, если сфокусирован {selectedDetent = .medium} , лист всегда возвращается как .large . Добавление .IgnorESSAFEAREA (.Keyboard) не дает результатов.

Подробнее здесь: https://stackoverflow.com/questions/795 ... ted-by-foc
Ответить

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

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

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

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

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