问题标签 [swiftui]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - 识别(通过:\.self) - 它有什么作用?
在此视频中:https ://developer.apple.com/videos/play/wwdc2019/103/ ,以下代码片段显示在 15:30 左右:
它有什么作用?self
指向哪里?当前对象 ( TraitCell_Preview
)?它甚至无法在我的计算机中编译,因为common
它不是ContentSizeCategory
. 我以为我以前在一次SwiftUI
谈话中看到过它(\.self
)。Keypath
不过,这并不是我在 Swift 中最好的东西。
我理解ForEach
的元素需要Identifiable
。self
(又名TraitCell_Preview
对吗?)只符合PreviewProvider
所以不符合Identifiable
(如果符合的私有_PreviewProvider
协议PreviewProvider
不符合Identifiable
,则不确定,因为我看不到代码)。
代码片段中有什么\.self
,它指向哪里?
swift - 视图中不可变的某些视图主体变量/不透明返回
在 Swift 5.1 中有不透明的类型。我看到 egbody
是必需的协议变量。它的合同定义如下:
这意味着我们应该能够将 body 标记为不可变(否set
)。这必须怎么做?不透明的变量类型是否可能是不可变的?我试过了:
但是我得到了AnotherView
必须转换为的错误some View
。这样做之后,我得到了错误:
'some' 类型仅针对属性和下标的声明类型以及函数的返回类型实现
我是否能够符合类型View
的不可变body
变量some View
(不将其显式标记为AnotherView
)?AnotherView
是some View
,我不明白为什么我不能只分配AnotherView
to的实例body
。我想保持灵活性并且不暴露结构体外部的实际实现类型,但我想直接在初始化器内部初始化它(因为我在初始化器内部传递值,制作更多属性并在 body 属性中使用它们是详细)。
swiftui - 当文本()对于设备的宽度来说太长时,如何在 SwiftUI 中进行换行?
我有以下内容,并希望换行较长的文本
ios - Text 或 Image 等视图类型如何符合 SwiftUI 中的 View 协议?
关于SwiftUI中的视图类型,有一件大事让我感到困惑:
他们似乎不符合View
协议,但不知何故,他们神秘地做到了。
以Text
类型为例。它的定义如下:
我找不到任何增加View
协议一致性的公共扩展,比如
官方文档中的“关系”部分简单说明:
符合: 平等
仅此而已,仅此而已。
然而,我可以返回Text
一些View
需要的实例,例如:
如果Text
不符合View
,这将不可能并引发编译器错误。
(some View
是一种不透明的结果类型,这意味着它是具有标识的特定类型,但符合View
.)
那么这怎么可能呢?
为SwiftUI视图类型(如、、、 ...)View
指定的协议一致性在哪里?Text
Image
Circle
swift - 带有 mkmapview 和 uitextfield 委托函数的 Swiftui
我正在练习和阅读SwiftUI
,我开始制作一个简单的应用程序,您可以在其中将位置输入到TextField
视图中swiftUI
,然后再次进入mkmapview
内部SwiftUI
将转到我搜索的位置。我似乎一辈子都无法掌握如何使用我的mkmapview
.
此外,我什至找不到在Textfield
不进行导航或渲染新视图或删除视图的情况下关闭键盘的方法。
谁能指出我如何关闭我的键盘?我习惯了resignFirstResponder()
或didFinishEditing()
。
另外,是否有人对如何为MKMapView
from分配功能有任何建议,swiftUI
或者我认为这一切都错了?
我想在我的 Textfield 的 onCommit 处理程序中,我会调用一个函数,该函数可以将必要的数据传递给MapView
并处理它,但我无法找到一个好的方法来做到这一点。
*编辑注意:我上面的代码有效,它将构建一个带有文本字段的全屏地图视图,并且文本字段接受文本并更新它的状态。我的问题是关于如何通过获取 mapview 的功能并在返回时隐藏我该死的键盘来继续前进
ios - 什么是布局系统?
在 UIKit 中,我们使用了自动布局系统。SwiftUI 使用什么布局系统?
它如何UIView
在画布中布局?
swift - 无法在 SwiftUI 中使用自定义视图
对于我的 SwiftUI 应用程序,我创建了一个简单的Title
视图,它具有设置的字体大小和文本颜色。Title
声明如下:
我现在在内容视图的正文中有以下文本对象:
所以现在,我想Text
用我的 s 替换这两个Title
s:
替换视图后,我从 Xcode 收到一些看似无关的错误消息,这些错误消息会阻止应用程序编译:
静态成员“leading”不能用于“HorizontalAlignment”类型的实例
'(LocalizedStringKey) -> Text' 不能转换为 '(LocalizedStringKey, String?, Bundle?, StaticString?) -> Text'
“字体”不能转换为“字体?”
...和更多。恢复Text
而不是Title
“修复”问题。
有趣的是,我还有一个自定义PrimaryButton
视图,我可以毫无问题地添加它:
...然后使用它:
问题
这只是一个测试版问题,还是我错过了什么?