- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个新的 SwiftUI 应用程序,并试图弄清楚如何使这个 Swift 项目与 SwiftUI 兼容:
https://github.com/suzuki-0000/SKPhotoBrowser
问题是我无法使 UIViewRepresentable 工作。
我收到一个错误:
Type 'PhotoViewer' does not conform to protocol 'UIViewRepresentable'
struct PhotoViewer: UIViewRepresentable {
@Binding var viewerImages:[SKPhoto]
@Binding var currentPageIndex: Int
func makeUIView(context: Context) -> SKPhotoBrowser {
let browser = SKPhotoBrowser(photos: viewerImages)
browser.initializePageIndex(currentPageIndex)
browser.delegate = context.coordinator
return browser
}
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
func updateUIView(_ browser: SKPhotoBrowser, context: Context) {
browser.photos = viewerImages
browser.currentPageIndex = currentPageIndex
}
class Coordinator: NSObject, SKPhotoBrowserDelegate {
var control: PhotoViewer
init(_ control: PhotoViewer) {
self.control = control
}
func didShowPhotoAtIndex(_ browser: PhotoViewer) {
self.control.currentPageIndex = browser.currentPageIndex
}
}
}
最佳答案
SKPhotoBrowser
是 UIViewController
子类,因此您需要使其符合 UIViewControllerRepresentable
不是 UIViewRepresentable
其实差别不大:
struct PhotoViewer: UIViewControllerRepresentable {
@Binding var viewerImages:[SKPhoto]
@Binding var currentPageIndex: Int
func makeUIViewController(context: Context) -> SKPhotoBrowser {
let browser = SKPhotoBrowser(photos: viewerImages)
browser.initializePageIndex(currentPageIndex)
browser.delegate = context.coordinator
return browser
}
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
func updateUIViewController(_ browser: SKPhotoBrowser, context: Context) {
browser.photos = viewerImages
browser.currentPageIndex = currentPageIndex
}
class Coordinator: NSObject, SKPhotoBrowserDelegate {
var control: PhotoViewer
init(_ control: PhotoViewer) {
self.control = control
}
func didShowPhotoAtIndex(_ browser: PhotoViewer) {
self.control.currentPageIndex = browser.currentPageIndex
}
}
}
关于SwiftUI:类型不符合协议(protocol) 'UIViewRepresentable',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61483839/
我创建了一个 UIViewRepresentable对于 UIVisualEffectView为了使某些组件充满活力。这是可行的,但是它似乎有时会垂直缩小控件,或者只是在运行时随机改变它们的边界。我似
我想,这个想法是这样的:无论 SwiftUI 中还没有提供什么,都可以使用 UIViewRepresentable 绕过。所以我开始为 TTTAttributedLabel 制作一个 UIViewRe
我正在处理一个应用程序,我必须将 MKMapView (UIKit) 嵌入到 SwiftUI View 中。不幸的是,我不能使用 SwiftUI 的实现 Map,因为我必须支持集群(Map 目前无法支
我正在开发一个新的 SwiftUI 应用程序,并试图弄清楚如何使这个 Swift 项目与 SwiftUI 兼容: https://github.com/suzuki-0000/SKPhotoBrows
由于 SwiftUI 的限制,我通常需要跳回 UIKit 并利用 UIKit 组件。这一切都很好,但我发现我通常需要继续创建单独的结构来保存我需要的功能。 例如。假设我有一个包含 4 个字段的表单,例
我正在尝试学习与 SwiftUI 结合,我正在努力如何使用 ObservableObject 更新我的 View (来自 UIKit) (以前的 BindableObject )。显然,问题是方法 u
我正在尝试将 UILabel 的自定义子类包装在 UIViewRepresentable 中,以便在 SwiftUI 中使用它。我正在使用 .sizeToFit 并打印框架,它在包装器中时看起来是正确
多行文本输入目前在 SwiftUI 中不受 native 支持(希望很快添加此功能!)所以我一直在尝试使用组合框架从 UIKit 实现支持多行输入的 UITextView,但是我的结果喜忧参半. 这是
我尝试在 SwiftUI 上构建一个基本的 Live Photo 应用程序,但在显示所选照片时遇到了困难。为此,我尝试为 PHLivePhotoView 制作 UIViewRepresentable:
当我在 SwiftUI 中创建一个 View 并在 Xcode 预览中呈现它时,使用 PreviewLayout.sizeThatFits ,预览会根据其内容调整其大小。当我使用 UIViewRepr
我正在尝试从 SpritzSwift 实现 uiView进入 SwiftUI 应用程序,但在第一次渲染后我无法更新它。驱动 UIView 的管理器正在工作,但 UIView 本身没有更新。我希望 Vi
我为 UITextField 创建了一个 UIViewRespresentable。我想应用修饰符: myTextField.font(.headline).keyboardType(keyboard
下面是最简单的例子。在预览中工作正常(UITextView 文本更新为“ouch”)。但是,在应用程序中运行它(即通过 sceneDelegate 添加为 rootView),UITextView 不
我很困惑,无法找到有关如何包装 UIKit 组件并正确调整其大小的文档。这是最简单的例子,包装一个 UILabel: public struct SwiftUIText: UIViewRepresen
是否可以制作 UIViewRepresentable View 需要 ViewBuilder参数处理动态内容,例如 ForEach循环? 我有以下 UIViewRepresentable我用来下拉到
我有一个 SwiftUI 应用程序,其中有几个 View 是使用 MapKit 制作的 map UIViewRepresentable。我有兴趣点和使用的自定义注释用于进一步操作的左右标注按钮。在右边
我有一个简单的例子,我在父 View 中创建一个 @ObservedObject 并将其传递给子 UIViewRepresentable。当我单击“按钮”时,它会修改 @ObservableObjec
在 SwiftUI 中将自定义 UILabel 添加到 List 时,我遇到单元格重用错误,其中某些单元格上的标签根本不可见,并且有些单元格被放置在左上角,而不考虑单元格的填充。它总是在初始单元格上完
为了定制一个UISlider ,我在 UIViewRepresentable 中使用它.它公开了一个 @Binding var value: Double这样我的 View 模型 ( Observab
将 lineBreakMode 设置为 byWordWrapping 并将 numberOfLines 设置为 0 似乎还不够: struct MyTextView: UIViewRepresenta
我是一名优秀的程序员,十分优秀!