iOS 抓取器拖动句柄是 UIKit 组件吗?

Posted

技术标签:

【中文标题】iOS 抓取器拖动句柄是 UIKit 组件吗?【英文标题】:Is the iOS grabber drag handle a UIKit component? 【发布时间】:2021-11-01 08:30:49 【问题描述】:

Apple 已经开始使用药丸状的“抓取器”拖动手柄来代表draggable drawers in Apple Maps、Find My 等。

抓取器是一种视觉提示,表明工作表可调整大小。当工作表无法调整大小或工作表无法以交互方式关闭时,显示抓取器可能很有用。

UISheetPresentationController: prefersGrabberVisible

拖拽手柄的设计与 ios 11 中发布的 iPhone X 主屏幕和应用切换图标类似。

grabber 是否处理 iOS 和 Interface Builder 中可用的标准 UIKit 和/或 SwiftUI 可视化组件?我在 Xcode 中找不到。

如果没有标准组件,如何从 UIViews 构建这样的抓取器?



【问题讨论】:

我认为一个通用名称是“底页” - Apple 没有内置组件。你可以自己动手,或者有一些开源实现 我想this package 可能就是你要找的。​​span> 【参考方案1】:

拖动手柄是UIGrabber 私有类,在公共 UIKit 中不可用:

https://twitter.com/rizwanasifahmed/status/1161221494166319104 https://twitter.com/harshil/status/1160172316287832064

它不是一个可在 UIKit 中使用的公共组件。但是,在 iOS 15+ 中,新的 UISheetPresentationController 具有 prefersGrabberVisible 属性。设置为true 至少会在您的应用程序的该工作表中显示系统抓取器。

在 Xcode 的 Debug View Hierarchy 模式下检查项目会显示 _UIGrabber 的私有类名称及其属性:

【讨论】:

以上是关于iOS 抓取器拖动句柄是 UIKit 组件吗?的主要内容,如果未能解决你的问题,请参考以下文章

我可以设置 textarea 的调整大小抓取器的样式吗?

JQuery UI API 更改为抓取可拖动数据

scrapy框架全栈/深度抓取

当元素被抓取/拖动时,如何删除被选中的文本?

react-native ios中的网页抓取?

IOS语音录取