问题标签 [uihostingcontroller]

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 投票
3 回答
467 浏览

swift - 为什么 SwiftUI UIHostingController 有额外的间距?

我正在尝试使用 UIHostingController 将 SwiftUI 视图添加到 UIKit 视图,它显示了额外的间距(此示例用于模拟生产应用程序上的问题)。这是屏幕截图。

在此处输入图像描述

布局概览:

问题: 快速 UI 视图 (UIHostingController) 显示在红色和蓝色视图之间,它在分隔线后显示额外的间距。间距根据 SwiftUI 视图的大小而变化。

如果我减少行数(Hello World 文本)或减少间距,它似乎工作正常。

这是完整的源代码(https://www.sendspace.com/file/ux0xt7):

ViewController.swift(主视图)

SampleView.swift

SampleViewController.swift

提前致谢!

0 投票
1 回答
117 浏览

swiftui - 嵌入 UIHostingController 时,无法将 SwiftUI 视图置于 SafeArea 之外

我有一个简单的 SwiftUI 视图,其中包含 3 个文本元素:

SwiftUI 视图嵌入在UIHostingController

结果如下所示:

在此处输入图像描述

UIHostingController 总是比视图大。此外,它总是使 SwiftUI 视图尊重安全区域(在我的情况下,我不想要)

我想要的样子:

(请不要评论home指示器的可用性,这里不是这样)

在此处输入图像描述

UIHostingController 有什么问题?我尝试在所有视图上设置 .edgesIgnoreSafeArea(.all) ImageDescriptionView,但没有帮助。

0 投票
1 回答
26 浏览

swift - 如何将关闭按钮从 swiftui 视图的主结构(由 uihostingviewcontroller 呈现)分离到它自己的结构?

我正在用一个按钮展示和关闭一个 swiftUI 视图,它工作正常。

swiftUI 视图:

我以这种方式展示来自 UIKit 的 SwiftUI 视图控制器:

我的问题是,我怎么能把这个按钮放在一个单独的结构中?所以为了有类似的东西:

0 投票
0 回答
68 浏览

ios - 将 SwiftUI 视图放入 UIHostingController 时不显示背景颜色

我有一个 SwiftUI 视图,我使用UIHostingController. 问题是 SwiftUI 视图的背景颜色在托管在UIHostingController.

这就是我在以下位置托管 SwiftUI 视图所做的工作UIHostingController

左边是它应该的样子,右边是它现在的样子。

感谢您的帮助!

0 投票
1 回答
45 浏览

swift - UIHostingController 尺寸太大

我正在尝试将 SwiftUI 再次嵌入到ViewUIKitUIViewView。它看起来像这样:

当前代码:

我希望Representable只设置backgroundColor. Text它不应该更大。此外,这只是一个示例,因此这不仅仅是Text设置背景颜色。

现在 目标
现在 目标

如果文本真的很长,还有一个问题 - 它不受屏幕/父级大小的限制(在这种情况下使用拥抱优先级):

长文本

在这种情况下,我如何确保它Representable仅与内容本身一样大Text?如果文本在一行上换行,例如在限制到某个宽度时,它也应该起作用。

0 投票
2 回答
38 浏览

ios - 状态栏对 UIHostingController 是透明的

以下是我在实际项目中的一个简化项目,以突出问题。

我有一个项目,我在其中添加了一个带有 UIHostingController 的 SwiftUI 视图,顶部的状态栏是透明的。我在滚动 SwiftUI 视图时看到它。

很容易重新创建,使用故事板创建一个新的 iOS 项目,并ViewController使用 NavigationView 将其嵌入到故事板中。

然后将ViewController内容替换为:

状态栏是透明的,并显示视图的白色背景:

滚动前

当我开始滚动时MySwiftUIView,状态栏是透明的就更加明显了:

滚动后

我四处寻找解决方案,因为我希望状态栏与导航栏具有相同的颜色,并且不在状态栏中显示来自 SwiftUI 视图的内容。但到目前为止,我还没有找到解决方案。

0 投票
0 回答
14 浏览

swiftui - UIHostingController 没有正确更新其大小

我在我正在开发的一个应用程序中使用 UIHostingController 并且遇到了问题。嵌入式 SwiftUI 视图会动态更改其高度,但我似乎无法掌握如何在它嵌入的视图中更新它。

问题似乎不在实现中,因为即使是最基本的也有这个问题。

UIView 是这样写的:

SwiftUI 视图是这样的:

有什么明显的我遗漏了,或者这只是 UIHostingController 的行为,我无能为力?后者似乎不应该是这样。

0 投票
0 回答
13 浏览

ios - 在 UICollectionViewCell 中有 UIHostingController 是一个潜在的问题吗?

我需要实现一个UICollectionViewController与 SwfitUI View 一起工作的UICollectionViewCell.

为此,看起来我们唯一能做的就是在代码示例中添加一个UIHostingController类似UICollectionViewCell内容

我什至已经实现了它,就像在这里共享的那样工作。

但是有人担心在 UICollectionViewCell 中有一个 UIViewController(即,将 SwiftUI 与 UIKit 组件桥接所需的 UIHostingController)不是很好?并且有潜在的问题。

UIHostingController因此在这里检查是否有任何问题UICollectionViewCell

如果有问题,那么将 SwiftUI 作为现有单元格的更好方法是UICollectionViewController什么?