Как я могу масштабировать высоту дочерних предметов с жестом увеличения при сохранении позиции прокрутки в Swiftui ScrolIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Гость
 Как я могу масштабировать высоту дочерних предметов с жестом увеличения при сохранении позиции прокрутки в Swiftui Scrol

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

Я пытаюсь создать дневной календарный вид, похожий на приложение для iOS Calendar. В приложении есть функция, где вы можете ущипнуть календарь, чтобы изменить расстояние между часами, которое я пытаюсь воспроизвести. Однако, поскольку якорь находится на вершине вида свитков, все детские предметы отталкиваются вниз и не спускаются из виду. Я хочу, чтобы якорь находился в центре щепотки, так что точка, откуда, откуда пользователь остается видимым. < /P>

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

import SwiftUI

final class HourItem: Identifiable {
let id: UUID
let hour: Int

init(hour: Int) {
self.id = UUID()
self.hour = hour
}
}

struct TestView: View {
let minHourHeight: CGFloat = 50
let maxHourHeight: CGFloat = 400

@State private var isZooming: Bool = false
@State private var previousZoomAmount: CGFloat = 0.0
@State private var currentZoomAmount: CGFloat = 0.0

private var zoomAmount: CGFloat {
1 + currentZoomAmount + previousZoomAmount
}

private var hourHeight: CGFloat {
100 * zoomAmount
}

private let currentTime: Date = Date.now
private let hourItems = (0.. CGFloat {
if hourHeight > maxHourHeight && newZoomAmount > currentZoomAmount {
return currentZoomAmount - 0.000001
} else if hourHeight < minHourHeight && newZoomAmount < currentZoomAmount {
return currentZoomAmount + 0.000001
}

return newZoomAmount
}
}

struct HourMarkView: View {
var hour: Int
var height: CGFloat
var currentTime: Date

var body: some View {
HStack(spacing: 10) {
Text(formatTime(hour))
.font(.caption)
.fontWeight(.medium)
.frame(width: 40, alignment: .trailing)
Rectangle()
.fill(Color.gray)
.frame(height: 1)
}
.frame(height: height)
.background(Color.white)
}

private func formatTime(_ hour: Int) -> String {
return String(format: "%02d:00", hour)
}
}
Текущее поведение
Предполагаемое поведение (календарь iOS)

Подробнее здесь: https://stackoverflow.com/questions/794 ... -preservin
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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