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

在没有桥接到ObjectiveC的情况下,我们能在SwiftUI中单独得到水龙头的坐标吗?

在没有桥接到ObjectiveC的情况下,我们无法直接在SwiftUI中单独获取水龙头的坐标。因为SwiftUI是一个声明式的UI框架,它的设计目标是简化界面开发,提供高度抽象的视图层次结构。在SwiftUI中,我们通常使用布局和约束来定义视图的位置和大小,而不是直接操作底层的坐标。

如果需要获取水龙头的坐标,可以考虑使用UIKit框架中的UIViewRepresentable协议,将UIKit的视图嵌入到SwiftUI中,并通过UIKit的方法获取水龙头的坐标。具体步骤如下:

  1. 创建一个符合UIViewRepresentable协议的自定义视图,例如名为TapView的结构体。
  2. 在TapView中实现makeUIView(context:)方法,创建一个UIView子类的实例,并配置相关属性和事件。
  3. 在TapView中实现updateUIView(_:context:)方法,根据需要更新UIView的状态。
  4. 在TapView中实现makeCoordinator()方法,创建一个协调器对象,用于处理与UIKit视图的交互。
  5. 在协调器对象中实现相关方法,例如处理水龙头的点击事件,并获取坐标。
  6. 在SwiftUI的视图中使用TapView,通过调用onTapGesture方法来监听水龙头的点击事件,并在回调中获取坐标。

需要注意的是,这种方法需要使用到UIKit框架,并且需要在SwiftUI和UIKit之间进行桥接。

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

相关·内容

Ask Apple 2022 与 SwiftUI 有关的问答(下)

在两种方案中,如果在数据量很大的情况下,我更倾向于第一种方式,这样可以按需求读取数据。...这意味着我们不能使用 LazyVStack,或任何其他将选择与详细视图绑定的自定义视图。有扩展这个功能的计划吗?A:在 iOS 16.1 中,你可以在侧边栏里放一个。...TextField 中文输入的问题Q:请问 SwiftUI 的 TextField 在中文输入时,会在字母选择阶段就直接上屏,造成输入内容错误的问题是已知问题吗?会在 16.1 RC 修复吗?...A:我们没能在 iOS 16.0.3 上重现你说的问题,你是否可以提供相关的代码段方便我们重现问题和调查?...在 SwiftUI 早期版本中,当在 iOS 中使用系统中文输入法时,很容易触发这种情况。但后期逐步得到了修复。近期,在聊天室中我也看到了类似的讨论( 我本人尚未在 iOS 16 上遇到 )。

14.8K30

聊聊接入Arbitrum的正确姿势

第三个水龙头是 Chainlink 提供的,虽然每次只能领取 0.1 ETH,但好在没有推特的要求,也没有时间限制,所以可以连续多次领取。这也是我最常用的水龙头。...从 Layer1 的水龙头领取到 ETH 之后,就可以通过 Arbitrum 桥将 ETH 转到 Layer2 的 Arbitrum Testnet 了。...Arbitrum 桥的地址为: https://bridge.arbitrum.io/ 不过,使用 Arbitrum 桥之前,还要先在 MetaMask 钱包中添加 Arbitrum Testnet 的信息...再说说我目前负责的 DEX 的一个场景,为了防范闪电贷攻击,我们限制了同个账户不能在同个区块内同时开平仓,所以,开仓和平仓函数,都会有这样一个判断: require( traderLatestOperation...连解决方案都没有提供,所以才说这是最大的坑。我也是没想明白,既然都提供了查询 Layer2 的区块高度,为何就不提供查询区块时间呢?是技术上有难度吗?

1.2K20
  • 如何用Swift重写C++ObjC代码库,并将其缩减70%

    在典型的小版本发布中,专注于新特性的测试是很容易的。彻底重写后,一切都是新的。尽管如此,在把问题隐藏了 35 年之后,我决定的最好方式依然是重新审视一切,并从头开始重写。...在为我们的 iOS 产品添加了 AR 支持后,受 AR 在儿童故事书中使用的启发,我构建了一个原型应用程序,探索如何在数学教育中使用 AR。...该应用程序主要是用 C++ 和 ObjectiveC++ 编写的。原型使用 ARKit 进行视觉和机器学习,虽然在 Objective-C 中这是可行的,但在 Swift 中它会更容易。...Swift 在集合类中使用了值类型,这使对它们的推理变得更加简单了;语法糖使得对它们的使用变得极其简单,并且它们还得到了一个实现支持,该实现使用自动引用计数和写时复制来使它们在几乎所有的使用中都具有高性能...Swift 语言、库和运行时都有非常出色的文档,甚至可以在必要时查看开源实现。相比之下,SwiftUI 框架是闭源的。

    91340

    解析SwiftUI布局细节(三)地图的基本操作

    (点击地图位置会获取经纬度,反地理编译得到具体的位置信息,显示在列表中) SwiftUI怎样使用UIKit的控件 ---- 我们来总结一下,SwiftUI怎么使用UIKit的控件,中间的连接就是...首先有一点,在SwiftUI中我们创建的View都是Struct类型,但手势的事件是#selector(),本质上还是OC的东西,所以在事件前面都是带有@Obic的修饰符的,但你要是Struct类型肯定是行不通的...地图使用 ---- 我们结合SwiftUI总结一下地图的使用,这部分的代码去Demo看比较有效果,地图我们使用 CoreLocation 框架,在这个 Demo 中我们使用到的关于 CoreLocation...CLLocationManager,加下来就是开始定位了,在开始定位之前我们要做的一件事就肯定是判断用户位置信息有没有开启,具体的是否开启权限判断和判断后的回调方法代码如下所示,代码注释写的很详细,我们这里也不做累赘...这样地图基本的东西我们也就说的差不多了,最后要提的一点是获取到位置的经纬度类型,我们经常使用的百度、高德等的地图它们定位得到的经纬度坐标类型是不一样的,它们之间的联系我们再梳理一下。

    2.1K10

    Ask Apple 2022 与 SwiftUI 有关的问答(上)

    是否可以在纯 SwiftUI 中完成( 不使用 UIKit )?给我一些方向来完成它吗?A:一般来说,我建议使用 .safeAreaInset(edge: .bottom) 来实现底部文本字段。...A:谢谢你的问题。这在目前是不可能的,但也是我们感兴趣的事情。估计苹果的工程师比较忙,没有认真考虑这个问题。...A:你永远不会看到 @ToolbarBuilder 了,因为 @ToolbarContentBuilder 在 iOS 16 中得到了功能增强。...只允许打开该内容类型的文件,但不能进行编辑。MVVMQ:在 UIKit 时代,MVVM 是一种常见的架构,视图显示的数据来自一个单独的 viewModel 类。...A:实现近似行为的方法是在菜单中使用命令来提供相同的操作。通常情况下,应该有列表让人们知道有哪些键盘快捷键可用。但是,如果这不适合你的使用情况,我们会对这方面的增强请求反馈感兴趣。

    12.3K20

    在 SwiftUI 中的作用域动画

    前言从一开始,动画就是 SwiftUI 最强大的功能之一。你可以在 SwiftUI 中快速构建流畅的动画。...简单示例让我们从一个简单的示例开始,展示我们旧方法的一些缺点,这些方法用于在 SwiftUI 中驱动动画。...它允许我们将动画范围限定为单个值,并仅在与特定值相关的更改时执行动画。在这种情况下,我们没有任何意外的动画。使用多个可动画属性如果我们有多个可动画属性怎么办?...总结这篇文章介绍了在SwiftUI中构建动画的新方法,重点解决了在多步动画或特定视图层次结构中控制动画的挑战。...最后,介绍了在 SwiftUI 中构建有作用域的事务的新方法,以维护更具精确性和可控性的动画。这些新功能在最新的平台上可用,为SwiftUI开发者提供了更强大的动画工具。

    17710

    解析 SwiftUI 中两处由状态更新滞后引发的严重 Bug

    但是,SwiftUI 中的一些系统控件并没有完全遵循响应式的设计原则,由此在某些情况下会出现严重的错误,影响用户体验,并使开发者无所适从。...原文发表在我的博客 肘子的Swift记事本视图变化在前、状态变化在后在 SwiftUI 中,某些可编程控件在执行一定的操作时,会先更新视图,待视图变化完成后再修改与其对应的状态。...然而,明显地,强迫用户点击 “Dismiss” 按钮并不是一个好的选择,特别是在没有屏蔽手势取消 Sheet 的情况下。...iOS 17 中得以修复,不知道是否和我们在 Discord 中讨论后给苹果提交的 Feedback 有关。...随着版本的提高,SwiftUI 的功能也确实得到了相当程度的增加。不过,即使在最新的版本中,在一些对 UIKit(AppKit)进行二次包装的控件中,仍有不少细节处理不到位的问题。

    761110

    用 SwiftUI 实现一个开源的 App Store

    [iAppStore-04.jpg] 最重要的是,我们把所有国家和地区的商店,都集成在一个面板中,通过下拉列表选择,实现快速切换榜单。...就是可以监听 App 在商店的状态,举例来说,App 发布了新版本,那么大概要多久才能在商店上显示呢?所以,我们可以通过苹果的接口,来定时的查询 App 的状态,从而知道 App 什么时候生效。...把地区语言放到单独成一个字段。 链接 以上内容在苹果公开的文档,都没有查询到 API 文档。...id=1558453472 3.4 App 评论内容 查询某个 App 的用户评论内容,没有在苹果的文档中找到,但是根据以上的调研,接口使用问题不大。...比如,SwiftUI 还不支持 WebView,所以用 SFSafariViewController 桥接的 View 在 SwiftUI 组件中显示会异常。

    2.1K20

    博客如何起手:手把手教学

    你的企业没有合适的买家角色吗?以下是一些可帮助你入门的资源: 为你的企业创建买家角色[免费模板] (https://offers.hubspot.com/persona-templates?...你在写关于可持续发展与环境的文章吗?在设计博客的外观时,绿色是可选择的颜色,因为绿色通常与可持续性相关联。...(6)写一个介绍(并让它有吸引力) 我们在帖子“如何撰写简介”中更具体地写了关于编写引人入胜的介绍,让我们回顾一下. 首先,抓住读者的注意力。...以下是我们认为可以立即吸引读者注意力的帖子示例: (7)在大纲中整理你的内容 有时候,博客帖子可能会有大量的信息 - 对于读者和作者来说,诀窍在于组织信息。这样读者不会被内容的长度或数量所吓倒。...随着社交网络更加突出地处理带有图像的内容,视觉效果现在比以往任何时候都更加容易促进你的博客内容在社交媒体中的成功。事实上,已经证明,与没有相关图像的内容相比,具有相关图像的内容获得的点击多94%。

    1.2K50

    解析 SwiftUI 中两处由状态更新滞后引发的严重 Bug

    但是,SwiftUI 中的一些系统控件并没有完全遵循响应式的设计原则,由此在某些情况下会出现严重的错误,影响用户体验,并使开发者无所适从。...然而,明显地,强迫用户点击 “Dismiss” 按钮并不是一个好的选择,特别是在没有屏蔽手势取消 Sheet 的情况下。...iOS 17 中得以修复,不知道是否和我们在 Discord 中讨论后给苹果提交的 Feedback 有关。...在我们遇到问题的两个场景中,应用程序都恰好使用了导航容器,并且通过特定的操作,使 RunLoop 处于了适合 AG 打包更新的状态。...随着版本的提高,SwiftUI 的功能也确实得到了相当程度的增加。不过,即使在最新的版本中,在一些对 UIKit(AppKit)进行二次包装的控件中,仍有不少细节处理不到位的问题。

    37020

    用 SwiftUI 实现一个开源的 App Store

    最重要的是,我们把所有国家和地区的商店,都集成在一个面板中,通过下拉列表选择,实现快速切换榜单。 2.2 App 详细页 App 详细页面,把开发者最关心的参数显示在最前面。...就是可以监听 App 在商店的状态,举例来说,App 发布了新版本,那么大概要多久才能在商店上显示呢?所以,我们可以通过苹果的接口,来定时的查询 App 的状态,从而知道 App 什么时候生效。...把地区语言放到单独成一个字段。 链接[5] 以上内容在苹果公开的文档,都没有查询到 API 文档。...id=1558453472 3.4 App 评论内容 查询某个 App 的用户评论内容,没有在苹果的文档中找到,但是根据以上的调研,接口使用问题不大。...比如,SwiftUI 还不支持 WebView,所以用 SFSafariViewController 桥接的 View 在 SwiftUI 组件中显示会异常。

    1.8K20

    SwiftUI 中布局的工作原理

    在幕后,SwiftUI 执行第四步:尽管它将位置和大小存储为浮点数,但在渲染时,SwiftUI 会将所有像素舍入到最接近的值,这样我们的图形仍然清晰。...中,我向您解释过,当您对视图应用修饰符时,我们实际上会得到一个名为ModifiedContent的新视图类型,它存储了原始视图及其修饰符。...这意味着当我们应用修饰符时,进入层次结构的实际视图是修改后的视图,而不是原始视图。 在我们的简单background()示例中,这意味着ContentView中的顶层视图是背景,而内部是文本。...如果我们把这个放到三步布局系统中,我们最终会有一个类似这样的对话: SwiftUI:“嘿,ContentView,你自己拥有整个屏幕——你需要多少?...第二个有趣的副作用是我们前面遇到的:如果我们在一个不能调整大小的图像上使用 frame(),我们会得到一个更大的 Frame,而图像内部没有改变大小。

    3.8K20

    快速学习-在 Remix 上构建简单的水龙头合约

    编写水龙头合约 对于我们的第一个例子,我们将编写一个控制水龙头的合约。我们已经在 Ropsten 测试网络上使用了一个水龙头来测试 ether。...此外,在帐户选择框中,它 显示你的钱包的地址: ? 在我们刚刚确认的“Run”设置的正下方,是水龙头合约,准备好了。单击“Deploy”按钮: ?...右侧的小剪贴板符号允许你将合约地址复制到剪贴板中。我们将在下一节中使用它。 另外如果细心我们可以在控制台 log 中看到,交易成功发送,我们可以用这里的链接到etherscan 上查询: ?...我们刚才在 etherscan 上也看到了,合约也还没有以太(零余额)。那是因为我们没有在创建交易中向合约发送任何以太,当然这本来是可以的。 那就让我们现在给合约发一些以太。...在一分钟内,如果你重新加载 etherscan 区块资源管理器,它将显示合约地址的另一个交易以及 1 个以太网的更新余额。 还记得我们的 Faucet.sol 代码中未命名的默认公共应付款功能吗?

    1.8K20

    打造可适配多平台的 SwiftUI 应用

    我们在视图代码中依赖这个环境值越多,将来需要做的调整也就越多。...我们创建 deviceStatus 的目的是用来观察当前应用的窗口状态,故此必须应用于最宽处。在 SwiftUI 中,除了环境值外,另一个具备较多平台“限制”的部分就是视图的 Modifier。...图片图片不过,这种在每个场景中创建独立的 Store 实例的方式并非适用于所有情况。在很多情况下,开发者只想在应用中保持一个 Store 实例。我将通过另一个简单的应用来展示这种场景。...回过头来,我们再看一下“电影猎手”的多个 Store 实例的实现方式。难道“电影猎手”没有应用层面(全局)的状态需求吗?当然不是。...因此,在 macOS 中,我们需要单独为 Settings 视图来调整颜色和语言的环境值。

    3.2K80

    掌握 Transaction,实现 SwiftUI 动画的精准控制

    同时,在 SwiftUI 的动画系统中,有关 Transaction 的解释很少,无论是官方资料还是第三方文章,都没有对其运作机制进行系统的阐述。...因此,在接下来的内容中,我们将更详细地介绍和阐述 transaction 的细节和实现,帮助你更好地理解。...如果没有在闭包中修改 transaction,可能会忽略该闭包( 不调用 )。...还记得上文中我们自定义的 animation 修饰器实现吗?在这个实现中,修饰器会判断上游 transaction 的 disablesAnimations 属性。...在使用“显式动画”时,通过在局部声明“隐式动画”来避免部分视图出现动画异常。 在需要的情况下,可以通过 TransactionKey 提供更丰富的上下文信息 尽量不在一次状态改变中修改过多的属性。

    53420

    SwiftUI 之 HStack 和 VStack 的切换

    使用布局协议 虽然我们最后已经用了非常棒的解决方案,可以在所有支持 SwiftUI 的 iOS 版本中使用,但也让我们来探索一下在 iOS 16 中引入的一些新的布局工具(在写这篇文章时,它作为...Xcode 14 的一部分仍在测试阶段) 其中一个工具是新的 Layout 协议,它既能让我们创建完整的自定义布局,直接集成到 SwiftUI 的布局系统中,同时也提供给我们一种更丝滑更动画的方式在各种布局之间动态切换...并希望能在未来测试版本中修复。...这样做会令动画更流畅,例如在切换设备方向时,我们也有可能在执行此类更改时获得小幅的性能提升(因为 SwiftUI 总是在其视图层次结构为静态时尽可能表现最佳) 选择合适的视图 但我们还没有结束,因为...,我们首先放置 HStack 是很重要的,因为 VStack 可能总是合适的,即使在我们希望布局是横向的情况下(例如 iPad 的全屏模式)。

    2.9K10

    PCI与PCIe学习一——硬件篇

    PCI 总线在系统中可以有多条,类似于树状结构进行扩展,每条 PCI 总线都可以连接多个 PCI 设备/桥。上图中有两条 PCI 总线。 3. PCI 桥。...会不会有更复杂的情况呢? 在某些大型服务器上,会有多个Host bridge的情况出现,这里我们就不展开了。 PCI标准有什么特点吗? 1. 它是个并行总线。...在PCI总线中,Root Bridge可以直接连出一条PCI总线,这条总线也是该Root bridge所管理的第一条PCI总线,该总线还可以通过PCI桥扩展出一系列PCI总线,并以Root bridge...加上PCI原来基本是半双工的(地址/数据线太多,不得不复用线路),而串行可以全双工。综合下来,如果如果我们从频率提高下来得到的收益大于一次传输多个bit的收益,这个选择就是合理的。...呵呵,有些主板厂商会把PCIe插槽尾部开口,方便这种行为,不过很多情况下没有。这时怎么办?你懂的。。。。 Q: 我的显卡是PCIe 3.0的,主板是PCIe2.0的,能工作吗?

    3.3K20

    Ask Apple 2022 中与 Core Data 有关的问答 (下)

    可以在 calendarView(_:decorationFor:) 方法中通过 fetchRequest 来为日历中的每个日期加载数据吗( 应该是指第二种方式 )?...但是在极少数情况下,例如你需要添加必须在类定义中声明的属性,此时应使用 Category/Extension 使你可以控制所需的类声明。...例如,当你创建一个带有字符串属性的新对象时,初始值( 在没有默认值的情况下 )是 nil,这在对象被验证之前( 通常在 save 时 )是没有问题的。...在可选标量的情况下,Core Data 受限于 Objective-C 中可表达的类型限制( 例如没有 Int64 这样的类型,可选的类型只能表达为 NSNumber )。...有什么更好的处理方法吗?谢谢。A:Codable 无法准确地对对象图中的对象进行单独编码。相反,你应该创建一个适合于此处需求的数据子集的可编码转换。或许可以使用 URIRepresentation 。

    3.3K20

    SwiftUI数据流之State&Binding

    在SwiftUI中,以单一数据源(single source of truth)为核心,构建了数据驱动状态更新的机制。...struct的拷贝,所以其中一个View的struct值发生变化,对另一个没有影响;反之,如果是class则会互相影响; 当User是一个结构体时,每次我们修改这个结构体的属性时,Swift实际上是在创建一个新的结构体实例...还记得我们如何使用mutating关键字来修改结构方法的属性吗?...@Binding的作用是在保存状态的属性和更改数据的视图之间创建双向连接,将当前属性连接到存储在别处的单一数据源(single source of truth),而不是直接存储数据。...,anotherFlag是没有使用属性包装器的普通变量,同时增加了一个mutating的方法changeAnotherFlag被设计修改anotherFlag; 在body中通过几种方式对两个变量进行修改

    4.1K30
    领券