在我的应用程序中,我可以使用以下代码在 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) ?
使用
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()