将侧栏添加到项目列表以跳到 SwiftUI 中选择的字母表

Posted

技术标签:

【中文标题】将侧栏添加到项目列表以跳到 SwiftUI 中选择的字母表【英文标题】:Add a side bar to a list of items to skip to the alphabet selected in SwiftUI 【发布时间】:2020-03-18 23:36:49 【问题描述】:

我不确定实际的术语是什么,但请看屏幕截图。

我指的是列表右侧的 A、B、C、D、E、...。

有人知道如何在 SwiftUI 中实现吗?

【问题讨论】:

【参考方案1】:

自己动手做! (复制-粘贴-测试)示例

import SwiftUI

struct ContentView: View 
    @State var sel: Int = 0
    let arr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".map(String.init)
    var body: some View 
        VStack(alignment: .leading) 
            Text("selected: " + arr[sel]).padding().border(Color.red)
            HStack(alignment: .top) 

                // place holder
                Text(arr[sel]).font(.largeTitle).frame(maxWidth: .infinity, maxHeight: .infinity).background(Color.yellow.opacity(0.1))

                VStack 
                    ForEach(0 ..< arr.count)  (i) in
                        Text(self.arr[i]).onTapGesture 
                            self.sel = i
                        .foregroundColor(Color.blue).padding(.trailing, 5)
                    
                
            
            Spacer()
        
    

struct ContentView_Previews: PreviewProvider 
    static var previews: some View 
        ContentView()
    

【讨论】:

以上是关于将侧栏添加到项目列表以跳到 SwiftUI 中选择的字母表的主要内容,如果未能解决你的问题,请参考以下文章

取消选择 SwiftUI 列表中的项目会使应用程序崩溃

如何在 swiftUI 中选择项目时在选择器上添加操作?

在 swiftUI 列表中添加、选择和删除文件名 - MacOS

SwiftUI 如何创建一个将项目添加到包含导航链接的列表的按钮

SwiftUI:选择列表中的项目后更新数据

SwiftUI:将列表添加到带有上方图标的滚动视图中