小编use*_*ser的帖子

如何在 SwiftUI 中制作屏幕高度一半的图像?

我想让图像在屏幕上居中,但使其高度为屏幕高度的一半?这怎么可能?

ios swiftui

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

如何让我的 TextField 在 SwiftUI 中从 Top-leading 开始?

我有一个简单的 TextField 代码,它有框架和背景,文本从中心领先开始,我希望它从顶部领先开始,我该怎么做?谢谢

import SwiftUI

struct ContentView: View {
    
    @State private var stringOfText: String = "Hello, world!"
    
    var body: some View {

        TextField("", text: $stringOfText)
            .frame(width: 300, height: 200, alignment: .center)
            .background(Color.yellow)

    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

swiftui

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

如何在 SwiftUI 中创建通用 PreferenceKey?

我想制作一个Generic PreferenceKey,但我的代码有两个问题。

首先,我需要为T定义(),以便使用StringInt作为String()Int()等普通类型,因此我需要T成员初始化程序

第二个 Xcode 抱怨我的PreferenceKey不符合Equatable,而我做到了! <T:可等量>

我该如何解决这2个问题?谢谢


struct ContentView: View {
    
    @State private var stringOfText: String = "Hello, world!"
    
    var body: some View {
        
        Text(stringOfText)
            .preference(key: CustomPreferenceKey.self, value: stringOfText)
            .onPreferenceChange(CustomPreferenceKey.self) { newValue in print(newValue) }
        
        
    }
}
Run Code Online (Sandbox Code Playgroud)
struct CustomPreferenceKey<T: Equatable>: PreferenceKey {
    
    static var defaultValue: T { get { return T() } }
    
    static func reduce(value: inout …
Run Code Online (Sandbox Code Playgroud)

swift swiftui

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

在 SwiftUI 中加载多个 UIImage 时出现内存问题

我使用这个简单的代码从 Temp 目录加载图像


struct AddNewMedia: View {

      @State var filename:String

      func imageFullPath(filename:String)->UIImage {
           let pathToTemoDir = FileManager.default.temporaryDirectory.appendingPathComponent(filename)
               return UIImage(contentsOfFile: pathToTemoDir.path)!
      }

         var body: some View {

             Image(uiImage: self.imageFullPath(filename: filename))
               .resizable()
               .scaledToFit()
     }
}
Run Code Online (Sandbox Code Playgroud)

每个新图像都需要大量内存才能可视化。在这个项目中,我需要加载 20-30 个图像,因此我应该减少每个图像所需的内存,现在每个图像大约 23mb。

是否可以直接从图像路径加载图像而不将其添加到内存中?有什么建议么?非常感谢!

memory-management uiimage swiftui

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

如何在 macOS SwiftUI 视图中读取并访问鼠标光标位置?

这是我非常简单的入门项目,正如您在问题标题中看到的那样,我想在 macOS SwiftUI 中的视图上悬停或移动时读取鼠标光标的位置。对于入门项目,我使用了手势!手势的问题在于,用户应该进行某种点击或拖动,这会触发手势,但我想获得手势的所有好处,而不必进行点击或拖动,我该怎么做?

struct ContentView: View {
    
    @State private var location: CGPoint = .zero
    
    var body: some View {

        return VStack {
            
            Spacer()
            
            HStack {
                Spacer()
                Text("location is: ( \(location.x), \(location.y))").bold()
                Spacer()
            }

            Spacer()
 
        }
        .background(Color.yellow)
        .gesture(DragGesture(minimumDistance: 0, coordinateSpace: .local)
                    .onEnded { value in location = value.location })

    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

swift swiftui

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

如何像从 SwiftUI 中获得的那样定义自定义原色?

我想定义一个像 SwiftUI Primary Color 这样的颜色!现在我正在解决我的问题,并在代码中colorScheme使用类似的方法:if


struct ContentView: View {
    var body: some View {
        CustomPrimaryView()
            .frame(width: 100, height: 100)
            .cornerRadius(10)
        Color.primary
            .frame(width: 100, height: 100)
            .cornerRadius(10)
    }
}    
Run Code Online (Sandbox Code Playgroud)
struct CustomPrimaryView: View {   
    @Environment(\.colorScheme)
    var colorScheme
    var body: some View {
        colorScheme == .light ?
            Color(red: 0.1, green: 0.1, blue: 0.1) :
            Color(red: 0.95, green: 0.95, blue: 0.95)
    }
}
Run Code Online (Sandbox Code Playgroud)

我想定义一个 customPrimary Color 并将其作为颜色而不是视图来访问,它动态地完成我在该视图中所做的工作。我们如何在 SwiftUI 中做到这一点?


。。。还在寻找纯 SwiftUI 答案!!!


swift swiftui

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

为什么我的 CustomType 无法符合 Decodable,即使我符合它?

我有一个符合 Decodable 的 CustomType,当我想将它用作我的函数所需的值时,Xcode 抱怨 CustomType 不符合 Decodable!我应该明确地使 CustomType 构造发生,我也这样做了,但它没有解决问题!我在这里缺少什么?

错误:

类型“CustomType.Type”不能符合“Decodable”

let stringOfJSON: String = """
{ "name": "SwiftPunk", "age": 35 }
"""

let dataOfJSON: Data? = stringOfJSON.data(using: String.Encoding.utf8)
Run Code Online (Sandbox Code Playgroud)
struct CustomType: Decodable {
    
    enum Codingkeys: String, CodingKey {
        case name, age
    }
    
    var name: String
    var age: Int
    
    init(from decoder: Decoder) throws {
        let container = try decoder.container(keyedBy: Codingkeys.self)
        name = try container.decode(String.self, forKey: .name)
        age = try container.decode(Int.self, forKey: .age)
    }
    
    
}
Run Code Online (Sandbox Code Playgroud)
func decoderFunction<T: Decodable>(dataOfJSON: Data?, customType: T, …
Run Code Online (Sandbox Code Playgroud)

swift

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

我们如何为 ForEach SwiftUI 制作自定义 Step?

我有一个与索引一起使用的 ForEach 循环,我如何使这个 ForEach 步骤获得自定义步骤,因为在每个循环中的 ForEach 中,它将向索引添加一个,我们如何使步骤为 5,这意味着在每个循环中添加 5 而不是 1。我可以使用 if 和 % 来实现,但我不希望 ForEach 尝试每个 Items 中的每个 Item。我们如何才能使其高效编码?

代码:

 struct ContentView: View
{
    var body: some View
    {
        
        
        List
        {
            ForEach(0 ..< 21) { index in // (Step == 5) not 1
                Text("Hello, world!")
                    .padding()
            }
  
        }
 

    }
}

 
Run Code Online (Sandbox Code Playgroud)

swiftui

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

如何在 SwiftUI 中为视图定义默认的空输入内容?

我有 CustomContentView(),我喜欢给它一个像 {} 这样的空内容作为默认值,在用例中我不必这样做,例如我对 Color 做了同样的事情!

更多信息:答案可以解决问题,无需使用 ViewBuilder,甚至无需将 CustomContentView 转换为功能,一切都可以,直到我们能够根据需要提供内容!

    struct ContentView: View {
    var body: some View {

        CustomContentView(content: { Text("hello") })

        CustomContentView(content: { })
        // I like this one: CustomContentView() How can I do this?
  
    }
 
}
Run Code Online (Sandbox Code Playgroud)
struct CustomContentView<Content: View>: View {
    
    let content: () -> Content
    let color: Color
    
    init( @ViewBuilder content: @escaping () -> Content, color: Color = Color.red) {
        
        self.content = content
        self.color = color
        
    }
    
    var body: some View {

        ZStack {
            
            Rectangle() …
Run Code Online (Sandbox Code Playgroud)

swiftui

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

用自定义按钮替换 SwiftUI 按钮

我想扩展 SwiftUI.Button,以便我可以添加一个 type 属性并将该类型更改为不同类型的主题按钮。但我是 Swift 新手,我不知道如何让我的标签和动作道具变得通用。

换句话说,如果我这样做

import SwiftUI

struct Button: View {
    var type: String = ""
    var action = {}
    var label = {
        Text("Button")
    }
    
    var body: some View {
        ZStack(content: {
            SwiftUI.Button(action: action, label: label)
        })
    }
    
    
}
Run Code Online (Sandbox Code Playgroud)

它将闭包限制为仅允许标签返回 text()

如何才能做到这一点

还有关于我应该如何根据类型更改按钮的“更改”的任何建议。

注意:有人对此表示反对,因为它类似于来自另一个用户的按钮样式查询,但事实并非如此。

该解决方案只是将预制样式添加到默认的 SwiftUI.button 结构中,但这不是我的目标。

我正在尝试使用可以传递的类型属性来扩展 SwiftUI.Button,并将根据该输入设置样式。

尽管他们有着相同的结果,但他们并没有实现相同的目标。我的解决方案将提供一个动态样式的组件,可以在整个项目中使用。无需尾随.buttonStyle(BlueButtonStyle())

swiftui

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

标签 统计

swiftui ×9

swift ×4

ios ×1

memory-management ×1

uiimage ×1