问题标签 [uiviewrepresentable]

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 投票
0 回答
1917 浏览

swiftui - 如何在 SwiftUI 中获取 UITextView 的动态高度

我非常接近在 SwiftUI 中为 UITextView 实现动态高度。请帮我解决这些问题:

  1. UITextView 在出现时具有正确的高度,但在执行编辑时不会调整高度;我想调整一下。
  2. 每次我在 TextView 中编辑文本时,我都会在控制台中收到此消息:[SwiftUI] Modifying state during view update, this will cause undefined behavior.

这是我的代码:

项目编辑视图

UITextView

有人问过类似的问题,但没有一个解决方案对我有用。

0 投票
0 回答
35 浏览

ios - 包裹在 UIViewRepresentable 中的 UITextView 不显示复制/粘贴菜单

屏幕

这是一个带有重写方法的自定义文本视图

0 投票
4 回答
3402 浏览

ios - 使用 SwiftUI 实现 Apple Pay

这是我第一次在大型项目中使用 PassKit 和 SwiftUI。我正在尝试实现 Apple Pay SwiftUI,但由于还没有本地方法可以做到这一点,我尝试将 PKPaymentAuthorizationViewController 包装在 UIViewControllerRepresentable 中,但我不确定我是否做得正确。

该视图显示正确,并且在单击它进行支付时似乎可以正常工作。我通过将视图绑定到 isPresentingApplePay 布尔值来控制显示窗口(见下文)。当窗口应该被关闭时,问题就会发生。点击cancel按钮不会关闭视图;有时它甚至不调用 paymentAuthorizationViewControllerDidFinish 委托函数。提交付款也会发生同样的事情。有时会调用 didFinish 委托,但不会关闭视图。我尝试传递绑定变量 isPresentingApplePay 并将其从 didFinish 设置为false,但它没有做任何事情。让视图消失的唯一方法是点击苹果支付窗口之外的任何部分。

有谁知道我做错了什么?有什么我完全想念的吗?

通过将视图绑定在if statement

这是我的 PKPaymentAuthorizationViewController 包装器:

这就是我在 UIView 中显示它的方式:

0 投票
0 回答
364 浏览

uitextview - SwiftUI UITextView 包装器如何调整其内容以匹配父级

我有这样的 UITextView 包装器,它可以工作,但是当我将它放在 List 行中时。我希望它自动调整大小,即在这种情况下具有与父级匹配的宽度 List Row VStack { },以及根据文本长度自动调整大小的高度。文本应该换行。现在它几乎可以工作了,但是像 URL 这样的较长文本超出了可用的行宽。

更新

现在我有这样的东西,它确实适合父 SwiftUI 视图(列表中的行),但它不换行(或根据内容大小垂直拉伸。如果滚动它会正确换行文本。另外,如果我设置 .frame(height: 500 ) 我可以看到它包含文本。但它不能正确自动调整大小。

0 投票
1 回答
419 浏览

ios - UIViewRepresentable 不会更新我的 ios 图表数据集

我正在尝试将我从 API 派生的数据转换为折线图,但我似乎无法让它工作。我将数据存储在一个可观察的对象中,因此需要几秒钟才能获取它,因此它不会显示在我的图表上,但是当我对数据进行硬编码时它可以工作,我确信我正在获取数据,但它根本不会出现。谢谢

0 投票
2 回答
574 浏览

list - SwiftUI 如何在其中创建带有自定义 UIViews 的列表

我考虑如何创建以行自定义 UIViews 作为其行的 SwitUI 列表。

我创建列表:

RowView 是 UIRowView 的 UIViewRepresentable

UIRowView 是自定义视图

当前显示第一行,但它们通常没有正确布局,并且在滚动时此视图会消失而不是被回收

更新

示例 1

示例 2 - 简化

两者似乎都无法正常工作,因为行消失了,如果有更多内容,我也遇到了视图不保持填充和超出屏幕的问题。只有几个第一行(最初在屏幕布局上正确可见)其他消失或跳转到某处。

在此处输入图像描述在此处输入图像描述

更新 2

这是可自动调整的 UINoteView

0 投票
0 回答
197 浏览

swiftui - 使用 `UIViewRepresentable` 来桥接 `UITextView`,它会增长和缩小以使其文本适合 SwiftUI

如果我想要一个占据整个宽度并垂直增长和收缩以适应其文本的非滚动UITextView,我可以在 UIKit 中这样做:

它看起来像这样:

布局合理

我想通过UITextViewUIViewRepresentable. 我是这样做的,文本视图的配置与 UIKit 示例中的完全相同:

并像这样在 SwiftUI 中使用它:

设置textView.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)成功会使文本视图将其文本包装成多行,但高度会填满整个屏幕:

包裹但高度错误

添加textView.setContentHuggingPriority(.defaultHigh, for: .vertical)确实会缩小高度,但现在换行不再起作用;所有文本都在一行中,延伸到框架之外:

不再包装

我在文档或在线中没有找到太多关于如何UIViewRepresentable将 UIKit 的布局连接到 SwiftUI 的信息。有没有办法实现这种自动增长和缩小以适应行为?或者我是否必须sizeThatFits在文本更改时手动设置框架?

0 投票
1 回答
448 浏览

ios - 集合视图:UIViewRepresentable + NavigationView

我使用 SwiftUI,这是 UIViewRepresentable。我通过这种方式做了 CollectionView。当我尝试。在控制器中添加 NavigationView,它可以工作,但不正确。当我滚动时,collectionView 和 navigationView 之间的空间被释放。

这是用 NavigationView 表示集合视图的代码:

基本上,它应该工作得很好,但我做错了什么?

0 投票
2 回答
2502 浏览

swiftui - 带有实时预览的 SwiftUI 录制视频

尝试制作允许用户使用 30 秒计时器录制视频的屏幕,然后我想将其发送到服务器上。问题是未调用委托方法(请参阅第二个代码部分)。

我所做的是PreviewView作为 UIView、时间和会话设置。即使我检查captureSession.isRecording它的显示为false

更新

视图可表示

看法

0 投票
2 回答
1342 浏览

swift - Can I use the Snapchat SDK (SnapKit) with SwiftUI?

I'm trying to integrate Snapkit with an iOS app but I want to use SwiftUI instead of UIKit. I've already done the required setup with Snapkit and now I'm trying to get the snapchat login button to display in my app. I know the Snapkit SDK is made for UIKit and not SwiftUI, but SwiftUI has a way to wrap UIViews into SwiftUI with the UIViewRepresentable protocol. I've tried implementing this but the login button still doesn't display.

Here's my code:

I have a feeling I'm missing something from within SCSDKLoginButton, but not sure what it is so here's the file SCSDKLoginButton.h for reference. Any help would be greatly appreciated!