返回

SwiftUI 官方教程(四)个人收藏地标标记

IOS

用 SwiftUI 构建 App 的未来:优化收藏地标列表

标记用户收藏的地标

随着 SwiftUI 成为构建 iOS App 的首选框架,我们不断探索优化用户体验的新方法。其中一个关键领域是优化收藏地标列表,让用户轻松管理他们喜爱的景点。

要做到这一点,我们将在每个收藏地标的 LandmarkRow 中添加一个标记按钮。这个按钮将允许用户轻松地标记或取消标记收藏地标,从而清晰地显示他们的收藏。

优化列表

接下来,我们将使用 Listfilter 方法来优化列表,只显示被收藏的地标。这将使用户更容易浏览他们收藏的景点,节省时间和精力。

代码示例

要实现这些优化,请遵循以下代码示例:

struct LandmarkRow: View {
    @State var landmark: Landmark
    @State var isFavorite: Bool

    var body: some View {
        HStack {
            Image(landmark.imageName)
                .resizable()
                .frame(width: 50, height: 50)
            Text(landmark.name)

            Spacer()

            Toggle(isOn: $isFavorite) {
                Label("Favorite", systemImage: "star")
            }
        }
    }
}

struct ContentView: View {
    @State private var landmarks = Landmark.landmarks

    var body: some View {
        NavigationView {
            List(landmarks.filter { $0.isFavorite }) { landmark in
                LandmarkRow(landmark: landmark)
            }
            .navigationTitle("Landmarks")
        }
    }
}

结论

通过添加标记按钮和过滤列表,我们显着优化了用户管理收藏地标的体验。这些增强功能使 SwiftUI 成为构建直观且用户友好的 App 的理想选择。

常见问题解答

1. 如何加入 SwiftUI 交流群?
添加我的微信,备注 "SwiftUI",我会将你拉进群聊。

2. 标记按钮如何工作?
标记按钮允许用户通过点击来标记或取消标记地标。它通过绑定到跟踪地标收藏状态的 isFavorite 变量来工作。

3. 如何在列表中使用 filter 方法?
filter 方法允许我们根据特定条件过滤列表中的项目。在我们的例子中,我们根据 isFavorite 属性来过滤列表,只显示被收藏的地标。

4. 我可以自定义标记按钮吗?
是的,您可以通过修改 LabelforegroundColorfont 和其他属性来自定义标记按钮的外观。

5. 是否可以将收藏地标存储在本地?
是的,您可以使用 Core DataUserDefaults 等框架将收藏地标存储在本地设备上。