小编Man*_*ero的帖子

SwiftUI-具有全屏模式的PresentationButton

我正在尝试实现一个按钮,该按钮使用“来自Botton的幻灯片”动画呈现另一个场景。

PresentationButton看起来不错,因此我尝试了一下:

import SwiftUI

struct ContentView : View {
    var body: some View {
        NavigationView {
            PresentationButton(destination: Green().frame(width: 1000.0)) {
                Text("Click")

                }.navigationBarTitle(Text("Navigation"))
        }
    }
}

#if DEBUG
struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        Group {
            ContentView()
                .previewDevice("iPhone X")
                .colorScheme(.dark)

            ContentView()
                .colorScheme(.dark)
                .previewDevice("iPad Pro (12.9-inch) (3rd generation)"

            )

        }

    }
}
#endif
Run Code Online (Sandbox Code Playgroud)

结果如下: 在此处输入图片说明

我希望绿色视图能够覆盖整个屏幕,并且还希望模式不能“拖动以关闭”。

是否可以在PresentationButton中添加修饰符以使其全屏显示并且不可拖动?

我也尝试过导航按钮,但是:-它不会“从底部滑动”-它在详细信息视图上创建了“后退按钮”,我不希望这样

谢谢!

swiftui xcode11

17
推荐指数
3
解决办法
2794
查看次数

SwiftUI:Scenekit 上的 HitTest

目标:使用 SwiftUI(而不是 UIKit)进行 SceneKit 命中测试

问题:当我在 SwiftUI“UIViewRepresentable”上嵌入默认船舶场景时,示例 handleTap 函数不起作用。我得到了他的错误:

“‘#selector’的参数引用了未暴露给 Objective-C 的实例方法‘handleTap’”

如何创建命中测试并将数据传递到另一个 SwiftUI 视图?

import SwiftUI
import SceneKit

 var handleTap: (() -> Void)

struct ScenekitView : UIViewRepresentable {
    let scene = SCNScene(named: "ship.scn")!

    func makeUIView(context: Context) -> SCNView {
        // create and add a camera to the scene
        let cameraNode = SCNNode()
        cameraNode.camera = SCNCamera()
        scene.rootNode.addChildNode(cameraNode)

        // place the camera
        cameraNode.position = SCNVector3(x: 0, y: 0, z: 15)



        // retrieve the ship node
        let ship = scene.rootNode.childNode(withName: "ship", recursively: …
Run Code Online (Sandbox Code Playgroud)

scenekit swiftui

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

SwiftUI:点击时更改列表行突出显示颜色

点击时列表行的默认颜色为灰色。

我知道如何使用 .listRowBackground 更改背景颜色,但随后它会更改为整个列表。

如何在点击时更改为自定义颜色,以便只有被点击的行保持红色?

import SwiftUI

struct ExampleView: View {
    @State private var fruits = ["Apple", "Banana", "Grapes", "Peach"]

    var body: some View {
        NavigationView {
            List {
                ForEach(fruits, id: \.self) { fruit in
                    Text(fruit)
                }
                .listRowBackground(Color.red)

            }


        }
    }


}

struct ExampleView_Previews: PreviewProvider {
    static var previews: some View {
        ExampleView()
    }
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

swiftui swiftui-list

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

SwiftUI - 带列表的段控制

我正在尝试制作一个处理列表和/或 Vstacks 的段控件

我能够使用文本创建段控件,但不能使用列表


import SwiftUI

struct MaterialSegmentControl : View {
    @State private var MaterialType = 0

    var body: some View {

        NavigationView {

            VStack {
                SegmentedControl(selection: $MaterialType) {
                    Text("Style").tag(0)
                    Text("Text").tag(1)
                    Text("Arrange").tag(2)

                }
                Text("Value: \(MaterialType)")


            }
        }
    }
}

Run Code Online (Sandbox Code Playgroud)

我怎样才能有一个在列表和/或 Vstacks 之间切换的段控件?

swiftui xcode11

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

SwiftUI - 嵌套列表

我正在尝试创建一个嵌套的分层列表,以便对于每个任务,我都可以拥有像 iOS 提醒应用程序中的子任务:

在此处输入图片说明

第一次尝试是在列表单元格中嵌入另一个列表。

import SwiftUI

struct SwiftUIView: View {
    var body: some View {

        List {
            List {
              Text("Hello, World!")

            }

        }
    }
}

struct SwiftUIView_Previews: PreviewProvider {
    static var previews: some View {
        SwiftUIView()
    }

Run Code Online (Sandbox Code Playgroud)

但是,没有结果...

任何人都可以帮忙吗?

干杯

xcode swiftui swiftui-list

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

SwiftUI - 在表单内选择器不工作(iPad 拆分视图)

我正在使用 Xcode 11 GM

我的层次结构是:

列表 > 表单(选择器)

这是列表的代码:


import SwiftUI

struct ContentView: View {
    var body: some View {

        NavigationView{

        List {
            NavigationLink(destination: FormView())
            {
            Text("Item 1")
          }

        }
       .navigationBarTitle("List")

       }


    }
}

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

这是表单的代码:


import SwiftUI

struct FormView: View {

    var body: some View {


        Form {
            Picker(selection: .constant(1), label: Text("Picker")) {
                Text("1").tag(1)
                Text("2").tag(2)

            }

           }
        .navigationBarTitle("Form")



    }
}

struct FormView_Previews: PreviewProvider {
    static var previews: …
Run Code Online (Sandbox Code Playgroud)

swiftui xcode11

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

SwiftUI:弹出窗口持续存在(在外部点击时不会被关闭)

我创建了这个弹出窗口:

import SwiftUI

struct Popover : View {
  @State var showingPopover = false

  var body: some View {

    Button(action: {
      self.showingPopover = true
    }) {
      Image(systemName: "square.stack.3d.up")
    }
    .popover(isPresented: $showingPopover){

    Rectangle()

      .frame(width: 500, height: 500)

    }
  }
}

struct Popover_Previews: PreviewProvider {
    static var previews: some View {
        Popover()
        .colorScheme(.dark)
        .previewDevice("iPad Pro (12.9-inch) (3rd generation)")
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

默认行为是在外部点击后关闭。

问题:如何将弹出窗口设置为: - 坚持(在外部点击时不会被关闭)?- 活动时不遮挡屏幕?

popover swiftui

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

SwiftUI:使用 .fileImporter 加载图像

目标是使用新的 .fileImporter 修饰符加载 2 个不同的图像(图像 1 和 2)。

问题是我将相同的图像加载到两个缩略图(图像 1 和 2)。

有人设法使用 .fileImporter 修饰符做到这一点吗?

import SwiftUI

struct ContentView: View {
    
    @State var openFile = false
    @State var img1 = UIImage()
    @State var img2 = UIImage()

    @State var fileName = ""

    
    var body: some View {
    

        Form {
            
            //image 1
            Button(action: {
                self.openFile.toggle()
            }){
                
                Image(uiImage: self.img1)
                .renderingMode(.original)
                .resizable()
                .frame(width: 48, height: 48)
                .clipShape(Circle())
            }
            
            //image 2
            Button(action: {
                self.openFile.toggle()
            }){
                
                Image(uiImage: self.img2)
                .renderingMode(.original)
                .resizable()
                .frame(width: 48, height: 48)
                .clipShape(Circle())
            } …
Run Code Online (Sandbox Code Playgroud)

swiftui xcode12

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

SwiftUI - Catalyst 半透明侧边栏

目标是在 Mac Catalyst 上制作一个半透明的侧边栏。

下面的代码给出了一个不透明的侧边栏(图 1)。

在 Mac(不是催化剂)上,侧边栏看起来不错(图 2)。

Mac Catalyst 上是否可以有一个半透明的侧边栏?

在此处输入图片说明

在此处输入图片说明

import SwiftUI

struct ContentView: View {
    var body: some View {
        
        NavigationView {
            
            //sidebar
            List {
                Label("Books", systemImage: "book.closed")
                Label("Tutorials", systemImage: "list.bullet.rectangle")
         
            }
            .background(Color.clear)

            .listStyle(SidebarListStyle())
            
            //content
            Text("Sidebar")
            .navigationTitle("Sidebar")
        }
        
        
    }
}
Run Code Online (Sandbox Code Playgroud)

swiftui mac-catalyst

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

SwiftUI:MacOS 上的自定义字体

目标:在 SwiftUI 上使用自定义字体,针对 MacOS。

问题:在 iOS 上,自定义字体在 SwiftUI 中工作正常: 在此输入图像描述

但在 MacOS 上,却没有: 在此输入图像描述

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack {
            Image(systemName: "globe")
                .imageScale(.large)
                .foregroundColor(.accentColor)
            Text("Hello, world!")
                .font(Font.custom("SourceCodePro-ExtraLight", size: 40))
            Text("Hello, world!")
                .font(Font.custom("LobsterTwo", size: 40))

        }
        .padding()
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

Run Code Online (Sandbox Code Playgroud)

尝试过:我确保这两种字体都添加到相应 iOS 和 MacOs 目标上的“信息”选项卡中: 在此输入图像描述 在此输入图像描述

SwiftUI 在底层使用 UIFont 似乎是一个问题,并且需要一个特殊的 NSFont...

任何帮助深表感谢!

macos xcode ios swiftui

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

标签 统计

swiftui ×10

xcode11 ×3

swiftui-list ×2

xcode ×2

ios ×1

mac-catalyst ×1

macos ×1

popover ×1

scenekit ×1

xcode12 ×1