如何在放大 SwiftUI ScrollView 后对齐底部内容?

问题描述 投票:0回答:1

在我的应用程序中,我可以使用以下代码在 ScrollView 底部对齐内容:

ScrollView([.horizontal, .vertical], showsIndicators: true) {

    StorageDrawingView(storageVM: storageVM)
        .frame(maxWidth: .infinity, minHeight: geometrySize.height, alignment: .bottom)
        .scaleEffect(zoomFactor)
        .scrollTargetLayout()

} // End ScrollView

这意味着,使用 GeometrySize 和框架对齐,它是有效的。

现在,我想放大滚动视图。 所以我使用了 iOS 17 的新

MagnifyGesture()
。再次,它可以工作,我可以缩放和取消缩放。

但是,我没有找到缩放后保持内容视图底部对齐的解决方案。它位于 ScrollView 的中心。

我做了一些测试,尝试了新的 iOS 17

.scrollPosition(id: $position)
但这对于带有 id 的列表/项目很有用。这不是我的情况。

缩放后可以手动滚动到底部吗?或者设置一个位置 (x,y) ?

swiftui scrollview
1个回答
0
投票

使用

scaleEffect(:, anchor:)

StorageDrawingView(storageVM: storageVM)
        .frame(maxWidth: .infinity, minHeight: geometrySize.height, alignment: .bottom)
        .scaleEffect(CGSize(width: geometrySize.height * zoomFactor, height: geometrySize.height * zoomFactor), anchor: UnitPoint(x: 0.5, y: 1))
        .scrollTargetLayout()

© www.soinside.com 2019 - 2024. All rights reserved.