小编Mar*_*kon的帖子

Xcode 身份验证失败,因为将 iOS 版本更改为 14 后未提供凭据

我将应用程序部署版本从 iOS 13 更改为 iOS 14,但在构建应用程序时遇到错误。

在此输入图像描述

尽管所有这些包都是公开的,但它一直在谈论没有提供凭据。我还设置了 github 凭据并一直使用它们。

我尝试删除 github 帐户,更改 ssh -> http,但似乎没有任何帮助。

当我尝试使用 Swift 包管理器添加新的公共包时,会发生同样的问题

在此输入图像描述

有什么建议么?

xcode xcode12

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

SwiftUI 如何有下一个和后一个动画?

我制作了包含 3 个页面和“下一步”、“后退”按钮的示例应用程序。

在此输入图像描述

当我单击“下一步”时,动画是完美的:旧内容位于​​左侧,新内容来自右侧。

然而,我正在努力使“返回”动画同时正常工作。

目标:当单击“返回”时,旧内容应位于右侧,新内容应位于左侧。(“后退”的动画应与“下一步”的动画相反)

知道如何实现这一点吗?

下面是“下一步”的完美过渡

struct ContentView: View {
    @State var page: Int = 0
    
    var body: some View {
        
        VStack {
            HStack {
                Button(action: { withAnimation() { self.page = self.page - 1 } }) {
                    Text("Back")
                }
                
                Spacer()
                
                Button(action: { withAnimation() { self.page = self.page + 1 }}) {
                    Text("Next")
                }
            }
            Spacer()
            
            if page == 0 {
                PageView(name: "First page", color: .brown)
                    .transition(AnyTransition.asymmetric(insertion: .move(edge: .trailing), removal: .move(edge: .leading)))
            } else if page == 1 { …
Run Code Online (Sandbox Code Playgroud)

swiftui

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

使用 UIHostingController 的 UIScrollView 跳转视图

我想将 SwiftUI 视图放入UIScrollViewusing中UIHostingController。然而,即使我使用自动布局来约束视图,我的按钮“切换”似乎在动画期间在视图中跳跃。

下面的视频说明了动画时按钮文字跳转的问题

在此输入图像描述 导入 SwiftUI

struct ExpandableView: View {
    @State var expanded = false
    
    var body: some View {
        VStack {
            
            Button(action: { withAnimation {expanded.toggle() }}) {
                Text("toggle")
            }
            if expanded {
                Text("long text long text long text long text long text long text long text long text long text long text long textlong text long text long text long text long text long text long text long text long text long text long textlong …
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller uikit autolayout

7
推荐指数
0
解决办法
477
查看次数

SwiftUI 如何迭代使用 viewBuilder 的 init 传递的视图

我在这里看到,在 SwiftUI 中可以将视图定义为

struct Passthrough<Content>: View where Content: View {

    let content: () -> Content

    init(@ViewBuilder content: @escaping () -> Content) {
        self.content = content
    }

    var body: some View {
        content()
    }

}
Run Code Online (Sandbox Code Playgroud)

并将其用作

Passthrough {
    Text("one")
    Text("two")
    Text("three")
}
Run Code Online (Sandbox Code Playgroud)

Passthrough只会显示所有 3 个Text元素,而不对它们执行任何操作。

我怎样才能分别“捕获”3个视图中的每一个(迭代它们全部)并对它们做一些事情Passthrough?假设让每个文本具有不同的字体大小?

我可以通过什么方式ForEach对传递给的元素执行操作Passthrough

swift swiftui

6
推荐指数
0
解决办法
700
查看次数

macOS 终端无法登录

安装 macOS Big Sur 测试版后,我的终端行为异常。

如果我在 PC 重启后启动终端,我可以很好地启动终端,但是如果我关闭它并尝试重新启动,我会发现自己在空白终端上说“登录”。

我在 iTerm 和本机终端上遇到了同样的问题。

终端预览

macos-catalina

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

SwiftUI 匹配几何 + LazyVStack = 崩溃

我花了几个小时来构建这个示例,我不确定我是否做错了什么,或者使用matchedGeometry+时是否存在导致应用程序崩溃的错误LazyVStack

在下面的视频中,当我单击第三个矩形(应用程序启动时不可见)时,应用程序崩溃了。如果我替换LazyVStack为,崩溃就会消失VStack,但显然我想延迟加载我的东西。

Xcode版本:版本12.0.1(12A7300)

在此输入图像描述

在此输入图像描述

struct ContentView: View {
    @Namespace var namespace
    @State var selected: Int?


    var body: some View {
        ZStack {
            VStack { 
                Text("Cool rectangles")
                
                if selected == nil {
                    ScrollView(.vertical, showsIndicators: false) {
                        BoxList(namespace: namespace, selected: $selected)
                    }
                }
            }
            
            if let id = selected {
                Rectangle()
                    .foregroundColor(.red)
                    .matchedGeometryEffect(id: id, in: namespace)
                    .onTapGesture {
                        withAnimation{
                            selected = nil
                        }
                    }

            }

        }
    }
}

struct BoxList: View {
    let namespace: Namespace.ID …
Run Code Online (Sandbox Code Playgroud)

animation swiftui

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

如何正确使用matchedGeometry?

当我使用匹配的几何视图修改器时,我总是收到警告

Multiple inserted views in matched geometry group Pair<String, ID>(first: "id1", second: SwiftUI.Namespace.ID(id: 8)) have isSource: true, results are undefined.

虽然动画仍然有效,但我想了解为什么会收到此警告以及如何解决此问题。

这是我构建的动画,任何想法如何摆脱警告?

在此处输入图片说明

使用以下代码

struct ContentView: View {
    @State var details = false
    @Namespace var animation
    
    var body: some View {
        ZStack {
            HStack {
                Rectangle()
                    .frame(width: 100, height: 100)
                    .matchedGeometryEffect(id: "id1", in: animation)
                    .onTapGesture {
                        withAnimation {
                            details.toggle()
                        }
                    }
                
                
                Spacer()
            }
            .zIndex(1)
            
            if details == true {
                AnotherView(details: $details, animation: animation)
                    .zIndex(2)
            }
        }
    }
}


struct AnotherView: View …
Run Code Online (Sandbox Code Playgroud)

swiftui

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

SwiftUI 如何用线连接对象?

我有三个圆圈,想画一条连接 1<->2 和 2<->3 的线。似乎没有线形状,即使有,我将如何指定连接。有任何想法吗?

我当前的代码如下所示

struct ConnectedCircles: View {
    var body: some View {
        VStack {
            Circle()
            .strokeBorder(Color.blue,lineWidth: 4)
                .background(Circle().foregroundColor(Color(.systemBackground)))
                .frame(width: 30, height: 30)
                
            Circle()
            .strokeBorder(Color.blue,lineWidth: 4)
                .background(Circle().foregroundColor(Color(.systemBackground)))
                .frame(width: 30, height: 30)
            
            Circle()
            .strokeBorder(Color.blue,lineWidth: 4)
                .background(Circle().foregroundColor(Color(.systemBackground)))
                .frame(width: 30, height: 30)
            
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

并产生三个不相连的圆圈。

在此输入图像描述

虽然我想制作这样的东西

在此输入图像描述

swiftui

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