小编Ger*_*ard的帖子

SwiftUI:如何处理轻按和长按按钮?

我在 SwiftUI 中有一个按钮,我希望能够对“点击按钮”(正常点击/点击)和“长按”执行不同的操作。

这在 SwiftUI 中可能吗?

这是我现在拥有的按钮的简单代码(仅处理“正常”点击/触摸案例)。

Button(action: {self.BLEinfo.startScan() }) {
                        Text("Scan")
                    } .disabled(self.BLEinfo.isScanning)
Run Code Online (Sandbox Code Playgroud)

我已经尝试添加一个“长按手势”,但它仍然只“执行”“正常/短”点击。这是我试过的代码:

Button(action: {self.BLEinfo.startScan() }) {
                        Text("Scan")
                            .fontWeight(.regular)
                            .font(.body)
                        .gesture(
                            LongPressGesture(minimumDuration: 2)
                                .onEnded { _ in
                                    print("Pressed!")
                            }
                        )
                    }
Run Code Online (Sandbox Code Playgroud)

谢谢!

杰拉德

button long-press swiftui

25
推荐指数
7
解决办法
2万
查看次数

SwiftUI - 如何将文本复制到剪贴板?

如何将文本字段的内容复制到 iOS 剪贴板?

我有以下代码 & 想用将文本字段的内容复制到 iOS 剪贴板的语句替换“print(..)”语句。

Text(self.BLEinfo.sendRcvLog)
    .onTapGesture(count: 2) {
        print("Copy text field content to ClipBoard Here..")
    }
Run Code Online (Sandbox Code Playgroud)

似乎找不到任何 SwiftUI 示例如何执行此操作。

谢谢!

copy-paste swiftui

13
推荐指数
3
解决办法
4875
查看次数

SwiftUI:如何在 SwiftUI 视图中取消计时器?

我在 SwiftUI 视图中使用计时器,如下面的代码所示。它按预期工作,但在某些情况下我想取消/停止该计时器。计时器变量上似乎没有“.cancel”属性或方法。如何取消这个计时器?任何想法/提示?


import SwiftUI

struct ContentView: View {

    @State private var selection = 2

    @State private var rotation: Double = GBstrtest

    let timer = Timer.publish (every: 0.8, on: .current, in: .common).autoconnect()

    var body: some View {
        TabView(selection: $selection){
            Text("Settings")
                .font(.title)
                .tabItem {
                    VStack {
                        Image(systemName: "gear")
                        .font(Font.system(.title ))
                        Text("Settings")
                    }
                }
                .tag(0)
            VStack {
                Divider().padding(2)
                ZStack {
                    Image("image1")
                        .resizable()
                        .aspectRatio(contentMode: .fit)
                    Image("image2")
                        .resizable()
                        .aspectRatio(contentMode:.fit)
                        .rotationEffect(.degrees(rotation))
                        .animation(.easeInOut(duration: 0.3) )
                        .padding(EdgeInsets(top: 0, leading: 50, bottom: 0, trailing: 50))
              }
              Spacer()
            } …
Run Code Online (Sandbox Code Playgroud)

timer swiftui

7
推荐指数
2
解决办法
5598
查看次数

iOS15 上的 Xcode 调试 - 空白屏幕和应用程序启动前的几分钟延迟

自从将我的 iPhone 升级到 iOS 15 并在 Mac 上升级到 Xcode 13 后,我在使用 Xcode 测试/调试任何 SwiftUI 应用程序时遇到了问题。即使是带有简单“hello world”示例的新 Xcode 项目,在按下 Xcode“开始”按钮时也会以这种方式运行(无论目标是模拟器还是装有 iOS 15 的物理 iPhone)。

应用程序似乎已正确上传到目标,但目标在显示应用程序屏幕之前显示空白屏幕超过一分钟(分钟)。

当 Xcode 调试器断开连接并在目标(无论是模拟器还是物理 iPhone)上手动启动应用程序时,它似乎工作正常(首先不会出现任何白屏)。

我的所有 SwiftUI 应用程序(以及简单的 Xcode Swift“Hello World”示例)都有相同的行为,这些应用程序已经工作了很长时间,没有任何问题。

我仍然安装了 Xcode 12.5,它现在表现出相同的行为(即使目标操作系统是 iOS 14.5),并且应用程序已上传到我的 iOS 15 iPhone。

基本上不可能测试和调试存在此问题的应用程序。

有没有其他人有这个问题?

有什么已知的解决方案或建议吗?

谢谢!

debugging ios15 xcode13

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

SwiftUI行高列表-如何控制?

我在SwiftUI中有一个简单的List。代码和屏幕截图如下。我想减少列表中每一行的高度(以使行和文本行之间的间距更小)。

我已经尝试过向HStack添加“ .frame(height:20)”,但是它仅允许增加行距!

有没有办法做到这一点?

谢谢!

杰拉德

import SwiftUI

struct PressureData: Identifiable {
  let id: Int
  let timeStamp: String
  let pressureVal: Int
}

struct ContentView : View {
  @State var pressureList = [
    PressureData(id: 0, timeStamp: "11:49:57", pressureVal: 10),
    PressureData(id: 1, timeStamp: "11:49:56", pressureVal: 8),
    PressureData(id: 2, timeStamp: "11:49:55", pressureVal: 9),
    PressureData(id: 3, timeStamp: "11:49:54", pressureVal: 1),
  ]

  var body: some View {
    VStack {
        Text("Pressure Readings")
            .font(.system(size: 30))
        List(pressureList) { row in
            HStack {
               Spacer()
                Text(row.timeStamp)
                Text("--->")
                Text(String(row.pressureVal))
                Spacer()
            } …
Run Code Online (Sandbox Code Playgroud)

formatting listview swiftui

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

SwiftUI - 如何脉动图像不透明度?

我在 SwiftUI 中有一个图像,我希望它永远“脉动”(每秒左右来来去去)。

我尝试了很多方法,但似乎无法达到我想要的效果。我尝试过的事情之一是下面的代码(它似乎什么也没做!:))。

Image(systemName: "dot.radiowaves.left.and.right" )
.foregroundColor(.blue)
.transition(.opacity)
.animation(Animation.easeInOut(duration: 1)
    .repeatForever(autoreverses: true))
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

animation swiftui

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