小编Lui*_*rez的帖子

如何为 AsyncImage 添加缓存

我是 SwiftUI 新手,正在研究如何从 URL 下载图像。我发现在 iOS15 中你可以使用 AsyncImage 来处理图像的所有阶段。代码如下所示。

    AsyncImage(url: URL(string: urlString)) { phase in
        switch phase {
        case .success(let image):
            image
                .someModifers
        case .empty:
            Image(systemName: "Placeholder Image")
                .someModifers
        case .failure(_):
            Image(systemName: "Error Image")
                .someModifers
        @unknown default:
            Image(systemName: "Placeholder Image")
                .someModifers
        }
    }
Run Code Online (Sandbox Code Playgroud)

我会启动我的应用程序,每次我在列表上上下滚动时,它都会再次下载图像。那么我怎样才能添加缓存呢?我试图像在 Swift 中那样添加缓存。像这样的东西。

struct DummyStruct {
  var imageCache = NSCache<NSString, UIImage>()
  func downloadImageFromURLString(_ urlString: String) {
    guard let url = URL(string: urlString) else { return }
    URLSession.shared.dataTask(with: url) { data, response, error in
        if let _ = …
Run Code Online (Sandbox Code Playgroud)

swift swiftui

49
推荐指数
4
解决办法
3万
查看次数

将 @FocusState 传递到另一个视图

我想知道如何将 @FocusState 传递给另一个视图。这是一些示例代码。

struct View1: View {
  enum Field {
    case username, password
  }

  @State var passwordText: String = ""
  @FocusState var focusedField: Field?

  var body: some View {
    // How would I be able to pass the focusedField here?
    View2(text: $passwordText, placeholder: "Password")

    //TextField("Password", text: $passwordText)
        //.frame(minHeight: 44)
        //.padding(.leading, 8)
        //.focused($focusedField, equals: .password)

    // How would I be able to add the commented code above to View2
  }
}

struct View2: View {
  @Binding var text: String
  let placeholder: …
Run Code Online (Sandbox Code Playgroud)

swiftui

24
推荐指数
2
解决办法
6811
查看次数

为什么 @FocusState 会导致 SwiftUI 预览版崩溃

好吧,我想知道为什么我的预览在更新 Xcode 后不起作用。所以我有一个看起来像这样的枚举。

enum Field {
    case email
    case securedPassword
    case unsecuredPassword
}
Run Code Online (Sandbox Code Playgroud)

现在,当我将 @FocusState 添加到 TestView 时,我的预览会崩溃并且不会更新。这是我的代码的样子。

struct TestView1: View {
    @FocusState var focusedField: Field?
    
    var body: some View {
        Color.blue
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我注释掉 @FocusState 时,我可以将颜色更改为红色,并且预览会更新。当 @FocusState 未注释掉时,当我将颜色更改为新颜色时,它不会更新预览并给我带来奇怪的崩溃。

现在这是一个错误吗?如果是,有解决办法吗?

swiftui

11
推荐指数
1
解决办法
2476
查看次数

SwiftUI 点击手势选择错误的项目

所以我正在尝试创建一个自定义图像选择器,类似于 Instagram,但更基本。这就是我使用它创建屏幕的方法。

struct NewPostScreen: View {
@StateObject var manager = SelectNewPostScreenManager()

let columns = [GridItem(.flexible(), spacing: 1), GridItem(.flexible(), spacing: 1), GridItem(.flexible(), spacing: 1)]

var body: some View {

    ScrollView {
        VStack(spacing: 1) {
            Image(uiImage: manager.selectedPhoto?.uiImage ?? UIImage(named: "placeholder-image")!)
                .resizable()
                .scaledToFit()
                .frame(width: 350, height: 350)
                .id(1)
            LazyVGrid(columns: columns, spacing: 1) {
                ForEach(manager.allPhotos) { photo in
                    Image(uiImage: photo.uiImage)
                        .resizable()
                        .scaledToFill()
                        .frame(maxWidth: UIScreen.main.bounds.width/3, minHeight: UIScreen.main.bounds.width/3, maxHeight: UIScreen.main.bounds.width/3)
                        .clipped()
                        .onTapGesture {
                            manager.selectedPhoto = photo
                        }
                }
            }
        }
    }
}
}
Run Code Online (Sandbox Code Playgroud)

用户界面看起来不错,一切都很好,但有时当我使用 TapGesture 单击图像时,它会为我的经理提供错误的 …

swiftui

10
推荐指数
1
解决办法
1234
查看次数

具有自动布局的UITableViewAutomaticDimension

好吧,我在使用tableview创建动态单元格时遇到问题.我的图片崩溃了,看起来像这样.它在描述很长时工作正常,但在短时间工作时效果不佳.

图像约束为:width = 120,height = 160,top = 8,leading = 12.

标题约束是:top = 8,导致imageView = 8,尾随= 12.

描述约束是:top到titleLabel = 5,导致imageView = 8,trailing = 12,bottom = 12 在此输入图像描述

现在,我没有将底部约束添加到描述中,而是将其添加到图像中,然后单元格看起来像这样. 在此输入图像描述 现在描述不合适,在中间,它应该在标题标签下面.

真的很感激帮助.

uitableview ios swift

1
推荐指数
1
解决办法
233
查看次数

标签 统计

swiftui ×4

swift ×2

ios ×1

uitableview ×1