首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在SwiftUI中获取TapGesture的CGPoint

在SwiftUI中获取TapGesture的CGPoint,可以通过使用onTapGesture修饰符来实现。onTapGesture修饰符是一个View的扩展方法,用于添加一个轻击手势识别器。

要获取TapGesture的CGPoint,可以在onTapGesture闭包中使用参数来接收手势的位置信息。具体步骤如下:

  1. 在需要添加轻击手势的View上使用onTapGesture修饰符。
  2. onTapGesture闭包中,使用一个参数来接收手势的位置信息,通常命名为location
  3. 在闭包中,可以使用location参数的xy属性来获取手势的CGPoint。

下面是一个示例代码:

代码语言:txt
复制
import SwiftUI

struct ContentView: View {
    @State private var tapLocation: CGPoint = .zero
    
    var body: some View {
        VStack {
            Text("Tap Location: \(tapLocation.x), \(tapLocation.y)")
                .padding()
            
            Rectangle()
                .fill(Color.blue)
                .frame(width: 200, height: 200)
                .onTapGesture { location in
                    tapLocation = location
                }
        }
    }
}

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

在上面的示例中,我们创建了一个包含一个矩形和一个文本的视图。当用户在矩形上进行轻击手势时,tapLocation的值会更新,并在文本中显示手势的位置。

这是一个简单的示例,你可以根据实际需求进行扩展和定制。在实际开发中,你可以利用获取到的CGPoint来执行其他操作,比如根据手势位置进行布局调整、触发其他事件等。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SwiftUI 下定制手势

对 Value 没有特别约定,相较 onChanged ,增加了更新手势属性(GestureState)和获取 Transaction 能力。 不同手势,对时机关注点有所区别。...1.2 思路 在 SwiftUI 预置手势,仅有 DragGesture 提供了可用于判断移动方向数据。根据偏移量来确定轻扫方向,使用 map 将繁杂数据转换成简单方向数据。...使用 simultaneously 将两种手势联合起来,从 DrageGesture 获取位置数据,从 TapGesture 退出。...minimumDistance 设置为 0 时,其第一条数据产生时间一定早于 TapGesture(count:1) 激活时间•在 simultaneously ,一共有三个 onEndend 时机...在本例,我们选择在 TapGesture onEnded 回调用户闭包 总结 当前 SwiftUI 手势,暂处于使用门槛低但能力上限不足状况,仅使用 SwiftUI 原生手段无法实现非常复杂手势逻辑

2.6K20

好看图表怎么画,看完这几个 API 你就会了

先来一波概念 在正式开始编码之前,我们先来熟悉一下 SwiftUI 提供一些绘制图形和图形特效 API 吧!...public mutating func move(to p: CGPoint) 将二次贝塞尔曲线添加到路径,并具有指定端点和控制点 public mutating func addQuadCurve...(to p: CGPoint, control cp: CGPoint) 将圆弧添加到路径,指定半径和角度 public mutating func addArc(center: CGPoint,...实现效果如下: image 绘制一个圆角矩形,这里需要用到 RoundedRectangle 这个结构体,在 SwiftUI 定义如下: @frozen public struct RoundedRectangle...,有点类似 PS 里钢笔工具,用到相应 API 为: ublic mutating func addQuadCurve(to p: CGPoint, control cp: CGPoint) 使用方式代码所示

2.9K10

自定义 Button 外观和交互行为

TapGesture 在不松开手指情况下,如果移动到可点击区域外,SwiftUI 将不会调用 onEnded 闭包操作。...假如,我们想达成与 TapGesture 类似的效果( 可撤销按钮 ),则可以通过 SwiftUI 提供另一个协议 PrimitiveButtonStyle 来实现。...例如:无法为 List NavigationLink 设置样式在 Button label 视图或 ButtonStyle 实现添加手势操作( 例如 TapGesture )将导致 Button...不再调用其指定闭包操作,附加手势需在 Button 之外添加( 例如下文 simultaneousGesture 实现 )为按钮添加 Trigger在 SwiftUI ,为了判断某个按钮是否被按下...希望在未来版本SwiftUI 可以为开发者提供更加强大自定义组件能力。希望本文能够对你有所帮助。

3.6K60

何在keras添加自己优化器(adam等)

2、找到keras在tensorflow下根目录 需要特别注意是找到keras在tensorflow下根目录而不是找到keras根目录。...一般来说,完成tensorflow以及keras配置后即可在tensorflow目录下python目录中找到keras目录,以GPU为例keras在tensorflow下根目录为C:\ProgramData...找到optimizers.pyadam等优化器类并在后面添加自己优化器类 以本文来说,我在第718行添加如下代码 @tf_export('keras.optimizers.adamsss') class...# 传入优化器名称: 默认参数将被采用 model.compile(loss=’mean_squared_error’, optimizer=’sgd’) 以上这篇如何在keras添加自己优化器...(adam等)就是小编分享给大家全部内容了,希望能给大家一个参考。

44.9K30

高级 SwiftUI 动画 — Part 1:Paths

这些都是被官方文档完全忽略主题,在SwiftUI 帖子和文章也几乎没有提及。不过,它们还是为我们提供了创建一些相当不错动画工具。...显式动画 VS 隐式动画 在SwiftUI,有两种类型动画。显式和隐式。隐式动画是你用 .animation() 修饰符指定那些动画。...超过两个可动画参数 如果你浏览一下 SwiftUI 声明文件,你会发现该框架相当广泛地使用AnimatablePair。比如说。CGSize、CGPoint、CGRect。...SwiftUI + Metal 如果你发现自己正在编写复杂动画,你可能会开始看到你设备受到影响,同时试图跟上所有的绘图。如果是这样,你肯定会从启用金属使用受益。...它将打开改变我们视图和动画新方法大门。与 Paths 一样,SwiftUI 没有关于如何在两个不同变换矩阵之间转换内置知识。GeometryEffect将有助于我们这样做。

3.7K20

SwiftUI 创建一个环形 Slider

环形Slider Slider 控件是一种允许用户从一系列值中选择一个值 UI 控件。在 SwiftUI ,它通常呈现为直线上拇指选择器。...有时将这种类型选择器呈现为一个圆圈,拇指绕着圆周移动可能会更好。本文介绍如何在 SwiftUI 定义一个环形 Slider。...有关默认 Slider 更多信息,可以参阅 如何在 SwiftUI 自定义 Slider 自定义外观内容。 初始化环形轮廓 从ZStack三个圆环开始。...视图被提取到一个单独结构,该结构具有圆形滑块上进度一个绑定值。 滑块range可选参数也是可用。这需要对进度进行一些调整,以计算已设置角度以及拇指在圆形滑块上位置旋转角度。...View以测试和演示 Circular Slider 视图不同功能。

3.5K30

何在 React 获取点击元素 ID?

在 React 应用,我们经常需要根据用户点击事件来执行相应操作。在某些情况下,我们需要获取用户点击元素唯一标识符(ID),以便进行进一步处理。...本文将详细介绍如何在 React 获取点击元素 ID,并提供示例代码帮助你理解和应用这个功能。使用事件处理函数在 React ,我们可以使用事件处理函数来获取点击元素信息。...使用 ref除了事件处理函数,我们还可以使用 ref 来获取点击元素信息。通过创建一个引用(ref),可以在组件引用具体 DOM 元素,并访问其属性和方法。...在事件处理函数 handleClick ,我们可以通过 btnRef.current.id 来获取点击元素 ID。当用户点击按钮时,handleClick 函数会打印出点击元素 ID。...结论本文详细介绍了在 React 获取点击元素 ID 两种方法:使用事件处理函数和使用 ref。

3.2K30

实现点击图片不同区域响应不同事件

大概目的是点击图片上温度可以直接改变空调温度 大概思路就是先通过gesture获取点击点坐标, 然后对坐标做处理....开始考虑以纵轴为0度, 计算点击坐标跟中心点连线并计算跟纵轴角度来判断, 不过代码写好后发现在不同设备上有误差 所以就改用将图片分成一个个格子, 然后判断触摸点在哪一个格子上面 下面来说说做法:...首先把图片放到一个表格, 调增好表格缩放大小刚好图片边缘压在单元格线上 如图: ?...addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tempTapAction:)]]; 从gesture获取转换后坐标并做判断.../ 9; float yunit = self.bgImg.frame.size.height / 43; CGPoint point; point = [tapGesture

1.3K40

高级 SwiftUI 动画 — Part 2:GeometryEffect

完整代码可在本页面顶部链接gist文件 实例6 获得。 动画反馈 在下一个例子,我将向你展示一个简单技术,它将使我们视图对效果动画进展做出反应。...你会注意到,三维旋转变换可能与你在核心动画中习惯略有不同。在SwiftUI,默认锚点是在视图前角,而在Core Animation是在中心。...在这个例子,我们效果将通过一个任意路径移动一个视图。这个问题有两个主要挑战: 1.如何获取路径特定点坐标。 2.如何在通过路径移动时确定视图方向。...在这个特定案例,我们如何知道飞机机头指向哪里(扰流板警告,一点三角函数就可以了)。 这个效果可动画参数将是 pct。它代表飞机在路径位置。... Advanced SwiftUI Animations – Part 2: GeometryEffect 本文完整示例代码可在以下位置找到: https://gist.github.com/swiftui-lab

1.3K30

何在onCreate获取View高度和宽度

何在onCreate获取View高度和宽度 在开发过程中经常需要获取到View宽和高,可以通过View.getWidth()和View.getHeight()来得到宽高。...然而新手们经常在onCreate方法中直接调用上面两个方法得到值是0! 这是为什么呢? 因为View绘制是通过两个遍历来完成,一个measure过程,一个layout过程。...而这一切是发生在onCreate方法之后。所以在onCreate中直接使用View.getWidth()和View.getHeight()是无法得到正确。...那应该怎么onCreate获取View宽高呢?...开发者可以通过View.post()方法来获取到View宽高,该方法传递一个Runnable参数,然后将其添加到消息队列,最后在UI线程执行。

5.3K20

SwiftUI 官方画图实例详细解析

前言 ---- 在前面几篇关于SwiftUI文章,我们用一个具体基本项目Demo来学习了下SwiftUI,里面包含了常见一些控件使用以及数据处理和地图等等,有兴趣小伙伴可以去翻翻以前文章...最后出来UI效果就是上面这个样子,这个看过SwiftUI官方文档朋友一定见过这张图,但不知道里面的代码具体每一行或者思路是不是都读懂了,下面我们就认真的分析一下它实现思路和具体代码实际作用。...接着我们在看看箭头是怎么画出来,具体代码是把它分成了上面两部分来画,然后通过控制各个点连接画出了图案,这次使用还是Path方法,具体是下面这个: /// Adds a sequence of...ZStack ,前面的文章我们有介绍和使用过 HStack 和 VStack,这次在这里就用到了 VStack,他们之间没有啥特备大区别,理解视图与视图之间层级和位置关系就没问题。...badgeSymbols位置 /// GeometryReader可以帮助我们获取父视图size .position(

98010

何在 WordPress 获取最新被评论文章列表

我之前「WordPress 文章查询教程6:如何使用排序相关参数」详细介绍了文章查询排序参数,其中介绍可以通过评论数进行排序: $query = new WP_Query( array(...'orderby' => 'comment_count' ) ); 但是需求总是不停变化,现在又有了新需求,获取最新被评论文章列表,意思就是某篇文章刚被评论,它就排到最前面,在某些社交需求网站可能需要用到...但是使用 SQL 来实现可能就会造成 API 不一致问题,无法直接使用 WP_Query 进行各种操作,所以最好是通过 posts_clauses 接口实现让 WP_Query 排序参数支持 comment_date...$order}"; } return $clauses; }, 10, 2); 上面的代码简单解释一下,就是通过 posts_clauses 接口实现文章表和评论表连表,然后通过评论时间进行排序获取最新被评论文章列表...当然你也可以不需要了解和使用上面的代码,因为 WPJAM Basic 已经整合,你只需要知道最后可以通过下面简单方式就能够获取最新被评论文章列表: $query = new WP_Query( array

1.5K30

何在代码获取Java应用当前版本号?

最近需要在项目中获取项目的版本号,最笨方法莫过于硬编码一个版本号,当然我也是这么干。不过闲下来时候突发奇想Spring Boot项目中pom.xml定义版本号能不能通过API获得呢?...从配置文件读取 Maven在构建项目时可以通过资源插件将构建属性即pom.xml属性注入到指定资源文件,具体操作为: ... 恰好spring-boot-starter-parent已经设置了这种方式。...Spring Boot提供 Spring Boot其实已经内置了获取项目构建信息自动配置ProjectInfoAutoConfiguration,它包含一个条件BeanBuildProperties:...spring-boot-version", "time" : { "epochSecond" : 1620664643, "nano" : 591000000 } } 总结 今天介绍了几种从通过API获取项目构建版本信息方法

3.1K20

Weex 事件传递那些事儿

前言 在前两篇文章里面分别谈了Weex如何在Native端初始化和Weex是如何高效渲染Native原生UI。Native这边还缺一块,那就是Native产生一些事件,是怎么传回给JS。...目录 1.Weex事件类型 2.Weex事件传递 一.Weex事件类型 在Weex,目前最新版本事件总共分为4种类型,通用事件,Appear 事件,Disappear 事件,Page 事件。...(onClick:)]; _tapGesture.delegate = self; [self.view addGestureRecognizer:_tapGesture...在这个方法,Weex会计算点击出点击到视图坐标以及宽高尺寸。 说到这里就需要提到Weex坐标计算方法了。 (1)计算缩放比例因子 在日常iOS开发,开发者使用计算单位是pt。...在WXDomModule模块,JS调用获取Component组件位置信息和宽高信息时候,需要把这些坐标和尺寸信息回调给JS,不过这里虽然用到了WXModuleKeepAliveCallback,

2.6K40

GeometryReader :好东西还是坏东西?

如果我们仍然使用上文代码信息获取方式,那么就无法获得变更后信息: .onAppear { width = proxy.size.width } 因此,正确获取信息方式为: .task...因为在某些系统版本,从 background 传递数据无法被 onPreferenceChange 获取到。...作为一个视图,GeometryReader 只能在被评估、布局和渲染后,才能将获取数据传递给闭包代码。...请阅读 用 SwiftUI 方式进行布局[9] 和 在 SwiftUI 实现视图居中若干种方法[10] 两篇文章,以了解面对同一个需求,SwiftUI 有多种布局手段。...在 SwiftUI 布局 —— 尺寸( 下 )[11] 一文,我们探讨过有关尺寸“里子和面子”问题。

44670

何在代码获取Java应用当前版本号?

最近需要在项目中获取项目的版本号,最笨方法莫过于硬编码一个版本号,当然我也是这么干。不过闲下来时候突发奇想Spring Boot项目中pom.xml定义版本号能不能通过API获得呢?...从配置文件读取 Maven在构建项目时可以通过资源插件将构建属性即pom.xml属性注入到指定资源文件,具体操作为: ... 恰好spring-boot-starter-parent已经设置了这种方式。...Spring Boot提供 Spring Boot其实已经内置了获取项目构建信息自动配置ProjectInfoAutoConfiguration,它包含一个条件BeanBuildProperties:...spring-boot-version", "time" : { "epochSecond" : 1620664643, "nano" : 591000000 } } 总结 今天介绍了几种从通过API获取项目构建版本信息方法

5.7K20
领券