问题标签 [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.

0 投票
1 回答
4705 浏览

swiftui - 如何为预览创建一个简单的绑定

有了新的@Binding委托和预览,我发现总是必须创建一个@State static var来创建必要的绑定有点尴尬:

有没有更简单的方法来创建绑定,代理一个简单的值来测试和预览?

0 投票
3 回答
2807 浏览

ios - 如何合并框架 SwiftUI

我们只能从 iOS 13.0+ 使用 Framework SwiftUI。那么如何从部署 Target 10.0 或至少 12.0 中合并这个框架。

在此处输入图像描述

0 投票
5 回答
6995 浏览

swift - SwiftUI 中的预览是否真的需要 #if DEBUG 语句才能在发布版本中删除它?

预处理器宏在 SwiftUI 官方教程/视频中很常见,例如:

需要那些吗?编译器肯定可以看到struct内部没有使用并省略整个struct,因为访问修饰符是隐式的,internal对吗?我认为符合的所有东西都PreviewProvider可以删除,但也许不是每个符合的对象都是如此,但如果不使用它,为什么Apple决定包含预处理器宏?

我试图在发布模式下运行它并在派生数据文件夹中找到编译的类,但我对它一无所知(.o 文件)。任何人都可以确认我们是否真的需要在发布版本中包含宏以省略未使用的代码(ContentView_Previews 类型不会在代码中的任何地方使用,期望预览在发布版本中无论如何都不会使用)?

0 投票
5 回答
4210 浏览

ios - SwiftUI TabbedView 仅显示第一个选项卡的内容

我正在尝试TabbedView使用以下简单代码构建一个:

运行时,两个选项卡都可见并已启用,但第二个选项卡(“Foo”)的内容为空白。

0 投票
4 回答
5625 浏览

ios - 如何在 swiftUI 中创建一个普通视图

我正在尝试在SwiftUI中创建具有背景颜色的普通视图。但我能找到的所有元素都不是普通视图,如文本、按钮、图像、列表等。

当我尝试使用View时,它会显示以下错误消息:

  • 无法构造“视图”,因为它没有可访问的初始化程序
  • 'View' 协议只能用作通用约束,因为它具有 Self 或 associatedType 要求

如何创建具有背景颜色的矩形视图?

0 投票
1 回答
1585 浏览

ios - SwiftUI 和 UIKit 与旧 API 中的 UIViewController 要求交互

场景:

我有一个简单的 SwiftUI 视图,如下所示:

现在理想情况下,在handleLogin函数中,我只需执行 OAuth 请求并处理登录等。但是,我使用在 GitHub 上找到的库用于演示目的。

这个库有一个方法authorize(callBackUrl: URL, presentingController: UIViewController),当被调用时会显示一个允许用户登录到 twitter 的 safari 控制器。但是,要调用authorize您需要传入一个符合SFSafariViewControllerDelegate. 从我目前的基本理解来看View,SwiftUI 中的类型不是视图控制器,而且SFSafariViewControllerDelegate由于它是结构体,因此不符合。

我查看了Apples 网站上的与 UIKit 接口教程,他们似乎创建了一个UIViewControllerRepresentable类型,然后从View类型中返回这个“控制器bodyView。这允许他们使用 UIKit 中的 PageViewController。但是,这并不完全是我拥有或需要的用例。我只需要能够以某种方式将我的简单View转换为UIViewController. 将是在这里使用的东西,如果UIHostingController是这样,如何注入这种依赖关系,或者视图是否应该知道/使用控制器?

我的困惑主要在于还不知道 SwiftUI 的最佳实践是什么。该View类型似乎取代了UIViewControllerUIKit 中的使用,但是当与 UIKit 交互时,转换是如何工作的呢?

如果有人有任何想法或想讨论这个,我将不胜感激!谢谢。

0 投票
2 回答
1002 浏览

animation - SwiftUI - 如何更改视图的层次位置?

这是一个不起作用的基本示例:

SwiftUI 无法弄清楚我认为第一个Color.green和第二个Color.green视图是同一个视图,所以当然动画只是将其中一个淡出,同时在新位置淡入另一个。我正在寻找向 SwiftUI 指示这些是相同视图并将其动画化到新位置的方法。我非常兴奋地发现了这个.id()修饰符,因为我相信它会给我想要的效果:

不幸的是,这也不起作用。我对 SwiftUI 感到难以置信的兴奋,但在我看来,在保持视图标识的同时更改视图层次结构的能力非常重要。促使我考虑这一点的实际用例是,我有一些视图,我正在尝试为其创建粉丝动画。最简单的方法是让项目处于ZStack一种状态,使它们都在彼此之上,然后让它们处于VStack扇出状态,这样它们就可以垂直展开并且全部可见。从 a 更改为ZStackaVStack当然算作结构的更改,因此状态之间的所有连续性都丢失了,一切都只是交叉淡入淡出。有谁知道该怎么做?

0 投票
16 回答
162262 浏览

ios - 在 SwiftUI 中使 VStack 填充屏幕的宽度

鉴于此代码:


结果是这个界面:

预览

VStack即使标签/文本组件不需要全宽,我如何才能填充屏幕的宽度?


我发现的一个技巧是在结构中插入一个 HStack,如下所示:

这会产生所需的设计:

期望的输出

有没有更好的办法?

0 投票
7 回答
5974 浏览

swift - 尝试从 WWDC 会话重新创建基于 SwiftUI 的应用程序时的问题

我正在尝试重新创建 Session 204 中演示的 SwiftUI 项目,但遇到了一些特殊问题。

我是通过观看此处找到的会话写的:https ://developer.apple.com/videos/play/wwdc2019/204

这是我的代码-

内容视图.swift:

房间.swift:

RoomDetail.swift:

RoomStore.swift:

上述代码中包含在上下文中的错误消息,作为注释。

0 投票
3 回答
8145 浏览

swiftui - Xcode 11 - SwiftUI 预览暗模式

在 Xcode 11 中,我们可以在应用程序运行时启用暗模式,方法是像这样切换调试区域底部的 Environment Overrides。

环境覆盖

SwiftUI 具有 Canvas 编辑器,可在您构建界面时生成应用程序的实时预览。

有没有办法在这些预览中切换到暗模式?