小编Man*_*ero的帖子

Swift UI - 如何制作图像网格?

需要使用 SwiftUI 创建图像网格,根据屏幕宽度动态更改行。

当我使用时List,我只能得到一列..

我尝试使用 Hstacks 制作 2 列,但它不能动态适应屏幕宽度。

例如:iPhone 纵向应有 1 列 示例:iPhone 横向应有 2 列

import SwiftUI

struct ProductGrid : View {
    var body: some View {

        List(0 ..< 5) { item in

            VStack() {
                Image("product")
                HStack {

                   ProfileImageSmall()
                        VStack {
                            Text("Product")

                            Text("Username")


                        }


                    }



            }

        }
    }
}

Run Code Online (Sandbox Code Playgroud)

如何制作一个列数适应屏幕宽度的网格?

swift swiftui

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

SwiftUI - 带有可点击按钮的单元格(表单内)

目标:

  1. 创建带有按钮的行/单元格
  2. 在表单中嵌入行/单元格

我做了什么:

  1. 我创建了一个带有按钮的单元格。
struct PointTypeButtons : View {
    var body: some View {
        
        VStack {
            HStack {
                Text("Aligment")
                    .font(.subheadline)
                Spacer()
            }
            
            HStack {
                
                Button(action: {}) {
                    Image(systemName: "text.alignleft")
                        .padding(.horizontal, 25.0)
                        .padding(.vertical)
                        .background(Color.black)
                        .cornerRadius(4)
                }
                Button(action: {}) {
                    Image(systemName: "text.aligncenter")
                        .padding(.horizontal, 25.0)
                        .padding(.vertical)
                        .background(Color.black)
                        .cornerRadius(4)
                }
                Button(action: {}) {
                    Image(systemName: "text.aligncenter")
                        .padding(.horizontal, 25.0)
                        .padding(.vertical)
                        .background(Color.black)
                        .cornerRadius(4)
                }
                Button(action: {}) {
                    Image(systemName: "text.alignright")
                        .padding(.horizontal, 25.0)
                        .padding(.vertical)
                        .background(Color.black)
                        .cornerRadius(4)
                }
            }
        }
        .frame(height: nil)
    }
}
Run Code Online (Sandbox Code Playgroud)

水平行中的 4 个按钮,左侧上方带有“对齐”文本

  1. 然后我把这个单元格放入一个表单中:
struct ToolbarBezier : View …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui swiftui-form

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

SwiftUI - 将内容放在列表中

我怎样才能在列表的中心制作这个箭头?

struct ProductsList : View {
var body: some View {

    VStack {
        List {
            Image(systemName: "shift")


        }

    }
}
Run Code Online (Sandbox Code Playgroud)

}

在此处输入图片说明

swiftui xcode11

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

SwiftUI:iPad上不必要的拆分视图

问题:Pad上的视图显示不想要的拆分视图。

我当前的设置是:Catalina OSX beta 5 + Xcode 11 Beta 5

这是我使用的代码,以及一个导航视图和一个导航标题

import SwiftUI

struct SwiftUIView: View {
    var body: some View {

        NavigationView {

                   Text("Search")

                       .navigationBarTitle(Text("Search"))




               }

    }
}

#if DEBUG
struct SwiftUIView_Previews: PreviewProvider {
    static var previews: some View {
        SwiftUIView()
    }
}
#endif
Run Code Online (Sandbox Code Playgroud)

当在iPad(物理设备和预览版)上模拟而不是全屏显示时,我得到了以下分屏显示:

在此处输入图片说明

如果我只有一个视图,而没有NavigationView,那么我将获得全屏视图:


import SwiftUI

struct SwiftUIView: View {
    var body: some View {



        Text("Hello World!")
    }
}

#if DEBUG
struct SwiftUIView_Previews: PreviewProvider {
    static var previews: some View {
        SwiftUIView()
    }
}
#endif …
Run Code Online (Sandbox Code Playgroud)

tabs swiftui xcode11 macos-catalina

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

SwiftUI - 文本嵌入到 ScrollView 后被截断

在文本视图中添加长文本时,它按预期工作(未截断)。

Xcode 11.0 测试版 6 (11M392q)

import SwiftUI

struct ContentView: View {

    var body: some View {



                Text("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia …
Run Code Online (Sandbox Code Playgroud)

swiftui xcode11 macos-catalina

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

金属光线追踪 – SceneKit 或 RealityKit

下面的 WWDC21 演讲展示了如何“使用 Metal 光线追踪增强您的应用程序”

如何将 Metal 光线追踪添加到 SceneKit 或 RealityKit 应用程序?

任何基本示例或参考代码将不胜感激!

scenekit swift metal realitykit

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

使用未解决的标识符“表单”

我一直在尝试复制下面的Apple WWDC 19示例-将SwiftUI VStack转换为Form-无济于事。

这是提到的视频Form

https://developer.apple.com/videos/play/wwdc2019/216/34:08

这是我用于VStack的代码:

import SwiftUI

struct ContentView : View {
    var body: some View {
        VStack {
            Toggle(isOn: .constant(true)) {
                Text("Toggle")
            }
            Stepper(value:.constant(4), in: 1...10) {
                Text("Stepper")
            }
            Text("Hello World")
        }
    }
}

#if DEBUG
struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
#endif
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码Form

import SwiftUI

struct ContentView : View {
    var body: some View {
        Form {
            Toggle(isOn: …
Run Code Online (Sandbox Code Playgroud)

swift swiftui

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

SwiftUI:UIkit UIbezier 到 SwiftUI 路径

我正在尝试将 UIBezierPath 转换为 SwiftUI 路径

我设法通过编辑波纹管代码手动完成:

从:

UIBezierPath controlPoint1 : CGPoint(x: 1226.38, y: 0), controlPoint2: CGPoint(x: 1199.37, y: 0))

到:

SwiftUI control1: CGPoint(x: 1226.38, y: 0), control2: CGPoint(x: 1199.37, y: 0))

完整路径代码示例:

       let stroke253 = UIBezierPath()
            stroke253.move(to: CGPoint(x: 1253.45, y: 0))
            stroke253.addCurve(to: CGPoint(x: 1172.3, y: 0), controlPoint1: CGPoint(x: 1226.38, y: 0), controlPoint2: CGPoint(x: 1199.37, y: 0))
            stroke253.addCurve(to: CGPoint(x: 990.46, y: 0), controlPoint1: CGPoint(x: 1111.66, y: 0), controlPoint2: CGPoint(x: 1051.12, y: 0))
            stroke253.addCurve(to: CGPoint(x: 808.64, y: 0), controlPoint1: CGPoint(x: 929.82, y: …
Run Code Online (Sandbox Code Playgroud)

cgpoint uibezierpath swiftui

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

RealityKit 的“.allowsCameraControl”工具用于构建“nonAR”应用程序

RealityKit 有相机选项.nonAR,但缺乏构建 3D 非 AR 应用程序的基本选项,例如相机控制 ( .allowsCameraComtrol)。

使用 RealityKit 替代 SceneKit 是否可行(过去几年没有更新,可能很快就会被亵渎)?

scenekit swift virtual-reality realitykit

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

SwiftUI-如何添加Scenekit场景

如何将Scenekit场景添加到SwiftUI视图?

我使用标准的Ship Scene示例尝试了以下Hello World ...

import SwiftUI
import SceneKit


struct SwiftUIView : View {
    var body: some View {

       ship()

        Text("hello World")


    }

Run Code Online (Sandbox Code Playgroud)

但这没有用: 在此处输入图片说明

scenekit swiftui xcode11

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