首页
学习
活动
专区
工具
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 框架是闭源

    90940

    解析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开发者提供了更强大动画工具。

    17210

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

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

    707110

    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.1K50

    SwiftUI 布局工作原理

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

    3.8K20

    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 两处由状态更新滞后引发严重 Bug

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

    34720

    打造可适配多平台 SwiftUI 应用

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

    3.2K80

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

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

    3.2K20

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

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

    51020

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

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

    1.8K20

    SwiftUI 之 HStack 和 VStack 切换

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

    2.8K10

    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.1K20

    SwiftUI数据流之State&Binding

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

    4.1K30
    领券