SwiftUI:ScrollView 偏移滚动内容

Posted

技术标签:

【中文标题】SwiftUI:ScrollView 偏移滚动内容【英文标题】:SwiftUI: ScrollView Offset Scroll Content 【发布时间】:2019-11-26 22:14:16 【问题描述】:

我正在尝试使用 SwiftUI 实现一个 ScrollView,其中包含日历对象的 HStack 和 ForEach() 来来回滚动以选择要在下面模仿的日期:

日期数组将是今天日期过去 30 天和未来 30 天。当我初始化 ScrollView 时,它总是从过去的第 30 天开始(数组索引 0),但是我怎样才能将 ScrollView 的滚动偏移到今天的日期在视图中的中心位置?我尝试过使用.content.offset(x: offset),但它在物理上偏移了视图中滚动的位置,而不是滚动量。

        ScrollView(.horizontal, showsIndicators: false) 

            HStack(alignment: .center, spacing: self.spacing) 

                ForEach(self.dateArray, id: \.self)  date in
                    CalendarObject(date: date)
                
            
        
        .content.offset(x: -self.offset, y: 0)

【问题讨论】:

你可以使用How to make a SwiftUI List scroll automatically? post中的idea 仅供参考!这绝对是一种可能性,但哇,这么简单的操作需要很多代码。 我想知道你是否找到了一个更好的解决方案,因为它已经一年了?我现在遇到了确切的问题。 解决方案是使用 Xcode 12 和 ios 14 和最新的 SwiftUI 2.0,我相信它现在具有设置偏移量所需的方法。 【参考方案1】:

在苹果的示例 swiftUI 代码中,他们只是在 ScrollView 中使用单元格的填充。也许是苹果的回答。

【讨论】:

以上是关于SwiftUI:ScrollView 偏移滚动内容的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI: ScrollView offset

SwiftUI - 调整 ScrollView 滚动指示器插图

当内容适合滚动视图边界时,SwiftUI ScrollView 不会使内容居中

在 SwiftUI 中,如何通过动态变化的滚动区域来缩放 scrollView 内的内容?

ScrollView 内容未填写 SwiftUI

SwiftUI - ScrollView 的宽度为 0,我的内容不可见