小编use*_*ser的帖子

何时将 SwiftUI 界面与 UIKit 生命周期结合使用?

我想知道为什么我们应该创建并使用带有 UIKit 生命周期的 SwiftUI 界面?我对此感到困惑!因为:

1-如果你想要 UIKit 编程,那么去选择 Storyboard 作为 Interface,然后选择 UIKit 作为 Life Cycle。

2-如果您想要 SwiftUI 编程,请选择 SwiftUI 作为接口,然后选择 SwiftUI 作为生命周期。

3-如果您想更改 Swift 语言,请将其更改为 Objective-C,您将获得 Storyboard 作为界面和 UIKit 作为生命周期。

选项 4 来了:

4-您可以将 SwiftUI for Interface 和 UIKit 作为生命周期!这就是这个问题的主题!如果我没记错的话,SwiftUI 处理的东西与 UIKit 不同,我们不需要在 SwiftUI 中定义委托或协议或类似的东西,但为什么我们在这种情况下得到AppDelegateSceneDelegate !如果我们创建这样一个 Xcode 项目,有什么优点和缺点?

swift swiftui

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

为什么 tabView 在方向改变时会跳回一个视图?

我正在使用 tabView 的简单代码。当我更改模拟器的方向时,应用程序选项卡会向后跳一个选项卡。就像这样,如果您在第 2 页转到第 1 页,但无论我如何更改方向,它都必须保留在第 2 页。或者如果您在第 3 页,则跳转到第 2 页。为什么会发生这种不需要的跳转?

struct ContentView: View {
    
    @State var currentPage: Int = 1


    var body: some View {
        
        
        ZStack
        {

            Color.gray.ignoresSafeArea()
            
            
            TabView(selection: $currentPage)
            {
                Text("Hi 1").tag(0)
                Text("Hi 2").tag(1)
                Text("Hi 3").tag(2)
                
            }
            .indexViewStyle(PageIndexViewStyle(backgroundDisplayMode: .never))
            .tabViewStyle(PageTabViewStyle())
            
        }
  
        
    }
}
Run Code Online (Sandbox Code Playgroud)

swiftui

5
推荐指数
0
解决办法
467
查看次数

如何在 SwiftUI 中将模糊效果作为背景?

我想要模糊效果作为我的视图的背景,正如我们所知,我们可以模糊视图和里面的内容,但我不想要模糊视图内容,但我想要模糊背景视图来提供玻璃般的模糊效果,如下所示我们知道。我如何在 SwiftUi 中做到这一点?

换句话说,视图的下层将在当前视图上的帧中模糊,该视图设置为当前视图的背景。

swiftui

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

如何在 macOS SwiftUI 生命周期中关闭/退出我的应用程序?

我想知道如何关闭或退出我的应用程序?我还有一些用于关闭应用程序的代码,但代码看起来不现代并且更新为 SwiftUI,我们是否有一些新的更好的代码?

import SwiftUI

@main
struct Work_Space_macOSApp: App {
    var body: some Scene {
        WindowGroup {

            VStack {

                Button("Close App") {
                    
                    // Do we have more SwifUI-ish code for closing App?
                    NSApplication.shared.keyWindow?.close()
                }
                
                Button("Quit App") {
                    // How can I quit the app?
                    
                }
                
            }
            .frame(width: 200, height: 200)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

swift swiftui

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

LazyVStack 在更改 SwiftUI 时初始化所有视图

我有一个LazyVStack我只想更新一个视图而不是重新加载屏幕上的所有其他视图的视图。对于更复杂的单元,这会导致性能大幅下降。我已经包含了示例代码

import SwiftUI

struct ContentView: View {
    @State var items = [String]()
    var body: some View {
        ScrollView {
            LazyVStack {
                ForEach(self.items, id: \.self) { item in
                    Button {
                        if let index = self.items.firstIndex(where: {$0 == item}) {
                            self.items[index] = "changed \(index)"
                        }
                    } label: {
                        cell(text: item)
                    }
                }
            }
        }
        .onAppear {
            for _ in 0...200 {
                self.items.append(NSUUID().uuidString)
            }
        }
    }
}
struct cell: View {
    let text: String
    init(text: String) {
        self.text = text
        print("init …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui lazyvstack

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

Swift 中 CGPoint 的数学运算

我想将 2 个 CGPoints 加在一起,然后我意识到没有为此定义函数,所以我把它写下来,我希望专业人士看看这个代码是否有任何错误或改进,但后来我脑子里出现了一个大问题,是吗?这么多的工作、编码和定制苹果都没有完成吗?我错过了什么吗?每个在 Swift 中使用 CGPoint 的人在某些时候都需要对其进行数学计算,那么为什么我们一开始就没有它呢?也感谢您查看代码并更正。

extension CGPoint {
    
    static func + (lhs: CGPoint, rhs: CGPoint) -> CGPoint {
        
        return CGPoint(x: lhs.x + rhs.x, y: lhs.y + rhs.y)
    }
    
}
Run Code Online (Sandbox Code Playgroud)

向LeoDabus大声喊叫:更新:+=

extension CGPoint {

    static func += (lhs: inout CGPoint, rhs: CGPoint)  {
        
        lhs = lhs + rhs
        
    }

}
Run Code Online (Sandbox Code Playgroud)

swift

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

对 Text 初始化程序的调用没有完全匹配,如何在 SwiftUI 中解决此问题?

我是 swift 的新手,这可能是一个愚蠢的问题,但它让我困惑了很长时间。这是我的代码,我通过模仿 WWDC 2020 的 swiftUI 介绍中的三明治示例来编写此代码。

import SwiftUI

struct movieDetail: View {

    var idnum:Int

    var body: some View {

        Text(idnum)

    }
}

struct movieDetail_Previews: PreviewProvider {

    static var previews: some View {

        NavigationView {
            movieDetail(idnum:24428)
        }
       
    }
}
Run Code Online (Sandbox Code Playgroud)

当它显示为编译错误时:

对初始化程序的调用中没有完全匹配。

WWDC 2020 的示例如下

import SwiftUI

struct sandwichdetail: View {

    var sandwich:Sandwich
    @State private var zoomed = false

    var body: some View {

        VStack {
            Text(sandwich.name)
        }
        .navigationTitle(sandwich.name)
        .edgesIgnoringSafeArea(.bottom)
    }
}

struct sandwichdetail_Previews: PreviewProvider {

    static var previews: some …
Run Code Online (Sandbox Code Playgroud)

swift swiftui

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

如何在 Xcode 中渲染 Markdown 文件

有时,我需要记录选择方法或记录框架或应用程序的当前问题或错误,甚至未来的代码更新或新目标的重要决策!这一切都是私有的,仅供开发人员使用,我使用 *.txt 文件,然后将其更新为 *.md 文件。但是使用 *.md 文件并不是我想要的全部,例如,对于大标题,我们应该#在标题之前使用,但是当我想阅读它时, 的符号#是可见的,这有点烦人。像这样:

在此输入图像描述

我不得不说我不想为函数或结构或其他东西制作文档。我只想输入一些有关应用程序本身的文字。#当我需要读取 *.md 文件时,如何在渲染模式下将其删除。我知道有一个关于游乐场的选项,但我不想使用它。我认为 *.md 文件非常适合我的用例,如果我能让它看起来更好,我也不知道如何添加链接或使文本加粗或将图片添加到我的 *.md 文件中。同样,这个 *.md 文件仅供我使用,它不会像 GitHub 那样在项目内部保持私有。

xcode swift

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

如何在 SwiftUI 中修复 mac 中视图的大小?

我在 Xcode 版本 14.1 中遇到了有关 macOS 中视图大小的新更改,在旧版本中,如果我给出帧大小或使用固定大小修饰符,视图将保持该大小,但在 14.1 中,我发现视图可能会扩展,即使我使用frame或fixedSize修饰符,这不是我所期望的。例如,我举了一个例子来说明这个问题,当我将尺寸更新到200.0时,视图/窗口保持更大的尺寸,我希望它会缩小到更小的尺寸,那么我该如何解决这个问题呢?

 struct ContentView: View {
    
    @State private var sizeOfWindow: CGFloat = 400.0
    
    var body: some View {
        VStack {
            
            Image(systemName: "globe")
                .imageScale(.large)
                .foregroundColor(.accentColor)
            
            Text("Hello, world!")
            
            Button("update", action: {
                
                if (sizeOfWindow == 200.0) { sizeOfWindow = 400.0 }
                else { sizeOfWindow = 200.0 }
                
                print(sizeOfWindow)
                
            })
        }
        .frame(width: sizeOfWindow, height: sizeOfWindow)
        .fixedSize()
    }
}
Run Code Online (Sandbox Code Playgroud)

swift swiftui

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

为什么我的 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
查看次数

标签 统计

swift ×8

swiftui ×7

ios ×1

lazyvstack ×1

xcode ×1