ios - 当方法参数为协议时,如何在 SwiftUI / Xcode 中轻松确定可以传递哪些类型?
问题描述
我是 SwiftUI 的新手,对 Xcode 也不是很老。我不确定这只是我的怀疑还是 SwiftUI/Xcode 应该工作的方式。
例如,如果我查看Text("").border
或者Text("").background
然后按照 Xcode 自动完成,则应该将类型确认传递给 ShapeStyle 或 View。由于 Color 扩展了 View 和 ShapeStyle ,因此可以为边框和背景提供颜色,例如Text("").border(Color.black)
或Text("").background(Color.gray)
我可能要求太多,但苹果开发人员文档和 Xcode 都没有明确或容易地让开发人员确定可以通过 Color。
我可以看到开发人员是否已经知道或研究了 Color 实现 View 和 ShapeStyle ,那么这样的人可以在第一个实例中编写代码,但是对于新手来说,当文档和 Xcode 的自动完成建议时,不容易推断出 Color 也可以提供提供 View 和 ShapeStyle。
问题是,这是否应该像开发人员一样工作的方式必须对类型和层次结构有很好的了解,或者有什么方法可以(尤其是新手)通过遵循苹果开发人员文档和/ 或 Xcode 中我可能不知道的东西?
解决方案
从 Xcode 11.5 开始,在这方面并没有什么特别之处。
哪些类符合 View / ShapeStyle 等协议,可以在“Relationships/Conforming types”下的协议文档中查找:
它有助于阅读大量实用的 SwiftUI 代码来吸收这些想法。SwiftUI 教程中的示例项目是一个好的开始。
推荐阅读
- scrapy - 为什么我无法解析 Scrapy 中的响应?
- node.js - 我可以在 Node JS 应用程序执行的任何时刻查看变量的值吗?
- docker - 无法访问主管、Docker 和 Swarm 机密
- node.js - 发送推送通知的 Azure 功能(Notification Hub + NodeJs)
- html - 在 Header for CSS 下将 Img 链接为我的背景
- python - OpenCV:去除背景噪音并增加信号强度
- swift - 使用 Swift 关闭 SFSafariViewController 时是否可以编辑动画?
- r - NanoStringDiff 计数不被识别为数字
- python - 无论如何在龟蟒中做类似 list[select_all] 的事情吗?
- php - 将 SQL 结果中的值添加到数组中