小编use*_*ser的帖子

SwiftUI:导航栏和选项卡栏上的全屏视图

我正在尝试在 SwiftUI 中的应用程序上添加全屏视图。这样做的目的是要有一个淡入的“阴影”,使屏幕变暗并将焦点集中到自定义弹出窗口,从而禁用背景中的内容。请参阅下面的视觉示例:

我有什么我想要的是

我试图添加此阴影的视图嵌入在复杂的 NavigationView 堆栈中(几层深,通过 a 访问NavigationLink),并且还有一个可见的 TabBar。到目前为止,我已经尝试将NavigationViewa 嵌入ZStack并在顶部添加 aRectangle()但无济于事,NavigationBar 和 TabBar 仍然位于此视图的顶部。我也尝试过使用修饰符,.zIndex()但这似乎没有任何作用。

任何帮助深表感谢,

谢谢

fullscreen swift swiftui

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

.onChange 中 Observable 对象的旧值和新值

我有一个名为 的可观察对象MyObject,它有一个名为 的已发布属性propertyproperty是字符串。

\n

我有这个

\n
.onChange(of:myObject.property, perform: {\xc2\xa0value in\n}\n
Run Code Online (Sandbox Code Playgroud)\n

问题是value触发时包含属性的旧值。

\n

苹果文档说你可以通过这样做来捕获属性的新值和旧值:

\n
@State private var playState: PlayState = .paused\n\n\n.onChange(of: playState) { [playState] newState in\n    print(playState, self.playState, newState)\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我不知道应该如何针对我的情况输入命令。

\n

我努力了

\n
.onChange(of:myObject.property, perform: {\xc2\xa0[myObject.property] newValue in\n
Run Code Online (Sandbox Code Playgroud)\n

但 Xcode 说

\n
\n

捕获列表中应有“弱”、“无主”或无说明符

\n
\n

有任何想法吗?

\n

swiftui

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

如何在 SwiftUI 中的 SegmentedPickerStyle 中为选取器提供图像和文本?

我正在使用 SwiftUI 构建一个选择器。

现在我想为每个选择添加一个图标和文本。所以它应该看起来像这样:

在此输入图像描述

这可能吗?如果是的话怎么办?

或者苹果人机界面指南根本不推荐它?

我已经尝试使用 HStack 将图像和文本包装在一起。

enum Category: String, CaseIterable, Identifiable {
    case person
    case more

    var id: String { self.rawValue }
}

struct ContentView: View {

    @State private var category = Category.person

    var body: some View {
        Picker("Category", selection: $category) {
            HStack {
                Image(systemName: "person")
                Text("Person")
            }.tag(Category.person)
            HStack {
                Image(systemName: "ellipsis.circle")
                Text("More")
            }.tag(Category.more)
        }.pickerStyle(SegmentedPickerStyle())
        .padding()
    }
}
Run Code Online (Sandbox Code Playgroud)

但该框架将其分为四部分。

在此输入图像描述

picker swiftui

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

如何在 SwiftUI 中遵守 ShapeStyle 协议?

我希望符合 ShapeStyle,目标只是符合 ShapeStyle(仅此而已)。

这是我的代码和问题:

struct MyContentView: View {
    var body: some View {
        Circle()
            .fill(RedView())
    }
}

struct RedView: View {
    var body: some View {
        Color.red
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我知道我可以直接使用Color.red而不是视图,但正如我所说,这个问题的目标是符合 ShapeStyle。对于那些要分享有关 ShapeStyle 的苹果开发人员链接的人,我不得不说我以前去过那里。

错误:

实例方法“fill(_:style:)”要求“RedView”符合“ShapeStyle”

swiftui

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

如何在SwiftUI中做出摇晃效果?

我想制作带有偏移的抖动效果,希望在 30.0 和 -30.0 之间的起始和抖动处具有零偏移,覆盖此偏移:-30.0, 0.0, 30.0

但在编码中我不能有这 3 个选项,而我有 2 个选项,我的目标是从 0.0 开始,到 30.0,然后到 -30.0,最后到 0.0

struct ContentView: View {
    @State private var start: Bool = false
    var body: some View {

        Image(systemName: "exclamationmark.triangle")
            .font(Font.system(size: 50))
            .offset(x: start ? 30.0 : -30.0)
            .padding()
            .animation(Animation.spring(response: 0.2, dampingFraction: 0.2, blendDuration: 0.2), value: start)
        
        Button("Shake") {
            start.toggle()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

swift swiftui

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

当我想终止应用程序时,如何解决“XPC 错误没有错误处理程序:连接无效”?

当我想要终止我的应用程序时,我从 Xcode 收到以下消息:

没有 XPC 错误的错误处理程序:连接无效

我正在使用这段代码,它使按摩发生:

NSApplication.shared.terminate(self)
Run Code Online (Sandbox Code Playgroud)

cocoa swift

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

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

如何获取二进制包的校验和?

我在桌面上创建了名为MyXCFramework.xcframework的 xcframework ,然后像Boris在 WWDC2020 中关于将二进制框架分发为 Swift 包时所说的那样将其压缩,这两个文件都在桌面上,我想获取校验和,然后我在终端中使用了这行代码:

cd ~/Desktop/

swift package compute-checksum ~/Desktop/MyXCFramework.xcframework.zip
Run Code Online (Sandbox Code Playgroud)

但终端出现此错误:

error: root manifest not found
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个错误?

我不知道为什么终端试图在这一点上体现?!因为还没有清单!我需要校验和来构建我的清单,以将二进制框架分发为 Swift 包。那么我该如何解决这个问题呢?

swift swift-package-manager xcframework

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

如何在 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
查看次数