Beiftui Beginner здесь. Фотоспикер встроен в представление, представленное с помощью перехода на навигации Zoom (из моего герового). Я подозреваю, что обработка жестов, связанная с навигационным переходом, может мешать поведению по умолчанию по умолчанию. Я попытался использовать такие модификаторы, как. Allowshittesting (True) и добавление высокого уровня для печати консольного сообщения при нажатии, но ни один подход не решал проблему. Хотя я вижу, что TAP распознается (консоль печатает сообщение), пользовательский интерфейс Photospicker только надежно появляется в длинном прессе. « жест: затворный затвор системного жеста », когда я использую длинное пресс. Будет ли очень признательен о том, может ли переход увеличения навигации. Buspageview внедряет Photopickerview, который имеет жест Tap, который регистрирует сообщение. Однажды, я снова новичок, поэтому я могу не хватать что -то очевидное. Если кто -то сталкивался с этой проблемой ранее или имеет какое -либо представление о том, является ли система жестов Swiftui - или еще одну основную проблему - заставляет фотоспетью реагировать только на длинные прессы, а не быстрые краны, я бы очень признателен за ваши руководства или предложения. Заранее спасибо за вашу помощь! < /P>
import SwiftUI
import PhotosUI
import SwiftData
// Dummy Model Definitions
@Model
class Bus {
var id: UUID = UUID()
var date: Date = Date()
//More stuff
var images: [BusImage] = []
}
@Model
class BusImage {
var id: UUID = UUID()
var data: Data
var bus: Bus?
init(data: Data, bus: Bus? = nil) {
self.data = data
self.bus = bus
}
}
struct HeroView: View {
let bus: Bus
@Binding var selectedBus: Bus?
@Namespace private var ns
var body: some View {
NavigationLink(destination: CreateReportDetailsView(bus: bus, selectedBus: $selectedBus)
.navigationTransition(.zoom(sourceID: bus, in: ns))) {
Text("Create Report")
.padding()
.background(Color.blue)
.foregroundColor(.white)
.cornerRadius(8)
}
.simultaneousGesture(TapGesture().onEnded {
print("HeroView tap recognized.")
})
}
}
// CreateReportDetailsView that contains a TabView and a PhotoPickerView.
struct CreateReportDetailsView: View {
let bus: Bus
@Binding var selectedBus: Bus?
@State private var selectedTabIndex: Int = 0
var body: some View {
VStack {
TabView(selection: $selectedTabIndex) {
BusPageView(bus: bus)
.tag(0)
Text("page")
.tag(1)
}
.tabViewStyle(.page)
}
.navigationTitle(selectedTabIndex == 0 ? "Bus Info" : "Issues")
}
}
// BusInfoPageView that embeds my PhotoPickerView.
struct BusPageView: View {
let bus: Bus
@State private var photosPickerItems: [PhotosPickerItem] = []
var body: some View {
VStack {
// Other Bus info content here...
PhotoPickerView(photosPickerItems: $photosPickerItems, bus: $bus)
.padding()
}
}
}
// PhotoPickerView with a high-priority tap gesture.
struct PhotoPickerView: View {
@Binding var photosPickerItems: [PhotosPickerItem]
@Binding var bus: Bus
@Environment(\.modelContext) private var modelContext
var body: some View {
VStack {
PhotosPicker("Select Photos", selection: $photosPickerItems, maxSelectionCount: 2, selectionBehavior: .ordered)
.frame(width: 120, height: 120)
.buttonStyle(.borderless)
.background(Color(.systemFill))
.clipShape(RoundedRectangle(cornerRadius: 20))
.contentShape(RoundedRectangle(cornerRadius: 20))
.simultaneousGesture(
TapGesture().onEnded {
print("Tap gesture recognized on PhotosPicker")
}
)
}
.onChange(of: photosPickerItems) { _, _ in
Task {
for item in photosPickerItems {
if let data = try? await item.loadTransferable(type: Data.self) {
let newImage = BusImage(data: data, bus: bus)
bus.images.append(newImage)
}
}
photosPickerItems = []
do {
try modelContext.save()
} catch {
print("Error saving model: \(error.localizedDescription)")
}
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... long-press
Swiftui Photospicker реагирует только на длинную прессу ⇐ IOS
Программируем под IOS
-
Anonymous
1741731573
Anonymous
Beiftui Beginner здесь. Фотоспикер встроен в представление, представленное с помощью перехода на навигации Zoom (из моего герового). Я подозреваю, что обработка жестов, связанная с навигационным переходом, может мешать поведению по умолчанию по умолчанию. Я попытался использовать такие модификаторы, как. Allowshittesting (True) и добавление высокого уровня для печати консольного сообщения при нажатии, но ни один подход не решал проблему. Хотя я вижу, что TAP распознается (консоль печатает сообщение), пользовательский интерфейс Photospicker только надежно появляется в длинном прессе. «[b] жест: затворный затвор системного жеста [/b]», когда я использую длинное пресс. Будет ли очень признательен о том, может ли переход увеличения навигации. Buspageview внедряет Photopickerview, который имеет жест Tap, который регистрирует сообщение. Однажды, я снова новичок, поэтому я могу не хватать что -то очевидное. Если кто -то сталкивался с этой проблемой ранее или имеет какое -либо представление о том, является ли система жестов Swiftui - или еще одну основную проблему - заставляет фотоспетью реагировать только на длинные прессы, а не быстрые краны, я бы очень признателен за ваши руководства или предложения. Заранее спасибо за вашу помощь! < /P>
import SwiftUI
import PhotosUI
import SwiftData
// Dummy Model Definitions
@Model
class Bus {
var id: UUID = UUID()
var date: Date = Date()
//More stuff
var images: [BusImage] = []
}
@Model
class BusImage {
var id: UUID = UUID()
var data: Data
var bus: Bus?
init(data: Data, bus: Bus? = nil) {
self.data = data
self.bus = bus
}
}
struct HeroView: View {
let bus: Bus
@Binding var selectedBus: Bus?
@Namespace private var ns
var body: some View {
NavigationLink(destination: CreateReportDetailsView(bus: bus, selectedBus: $selectedBus)
.navigationTransition(.zoom(sourceID: bus, in: ns))) {
Text("Create Report")
.padding()
.background(Color.blue)
.foregroundColor(.white)
.cornerRadius(8)
}
.simultaneousGesture(TapGesture().onEnded {
print("HeroView tap recognized.")
})
}
}
// CreateReportDetailsView that contains a TabView and a PhotoPickerView.
struct CreateReportDetailsView: View {
let bus: Bus
@Binding var selectedBus: Bus?
@State private var selectedTabIndex: Int = 0
var body: some View {
VStack {
TabView(selection: $selectedTabIndex) {
BusPageView(bus: bus)
.tag(0)
Text("page")
.tag(1)
}
.tabViewStyle(.page)
}
.navigationTitle(selectedTabIndex == 0 ? "Bus Info" : "Issues")
}
}
// BusInfoPageView that embeds my PhotoPickerView.
struct BusPageView: View {
let bus: Bus
@State private var photosPickerItems: [PhotosPickerItem] = []
var body: some View {
VStack {
// Other Bus info content here...
PhotoPickerView(photosPickerItems: $photosPickerItems, bus: $bus)
.padding()
}
}
}
// PhotoPickerView with a high-priority tap gesture.
struct PhotoPickerView: View {
@Binding var photosPickerItems: [PhotosPickerItem]
@Binding var bus: Bus
@Environment(\.modelContext) private var modelContext
var body: some View {
VStack {
PhotosPicker("Select Photos", selection: $photosPickerItems, maxSelectionCount: 2, selectionBehavior: .ordered)
.frame(width: 120, height: 120)
.buttonStyle(.borderless)
.background(Color(.systemFill))
.clipShape(RoundedRectangle(cornerRadius: 20))
.contentShape(RoundedRectangle(cornerRadius: 20))
.simultaneousGesture(
TapGesture().onEnded {
print("Tap gesture recognized on PhotosPicker")
}
)
}
.onChange(of: photosPickerItems) { _, _ in
Task {
for item in photosPickerItems {
if let data = try? await item.loadTransferable(type: Data.self) {
let newImage = BusImage(data: data, bus: bus)
bus.images.append(newImage)
}
}
photosPickerItems = []
do {
try modelContext.save()
} catch {
print("Error saving model: \(error.localizedDescription)")
}
}
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79502179/swiftui-photospicker-only-responds-to-long-press[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия