小编Naj*_*jam的帖子

将 12 个 ARFrame 添加到数组后 ARSCNView 冻结(iOS/Swift)

我有一个ARSCNViewViewController.swift我想将它保存ARFrames到一个预先分配的数组中

func session(_ session: ARSession, didUpdate frame: ARFrame)
Run Code Online (Sandbox Code Playgroud)

但是,在处理大约 11-13 后ARFrames,整个ARSCNView将通过使用冻结

self.ARFrames.append(frame)
Run Code Online (Sandbox Code Playgroud)

奇怪的是,func session(_ session: ARSession, didFailWithError error: Error)在此过程中没有调用,也没有报告任何其他错误,应用程序没有崩溃,所有其他用户控件都可以正常工作,只有ARSCNView冻结和didpUdate 事件不会被调用。类似于ARSCNView 在添加具有强引用的 14 个 ARAnchor 子类对象时冻结,但那里的页面没有解决方案。同时也是应用后转到后台并返回,sessionWasInterrupted(:)sessionInterruptionEnded(:)被称为,即使现场查看被冻结之前。这是iOS 11的错误吗?

这是我在我的应用程序中使用的完整代码。

import UIKit

class ViewController: UIViewController,ARSCNViewDelegate,ARSessionDelegate {
    @IBOutlet var sceneView: ARSCNView!
    let configuration = ARFaceTrackingConfiguration()
    var ARFrames = [ARFrame]()
    var imgCount = 0

    override func viewDidLoad() {
        super.viewDidLoad()
        ARFrames.reserveCapacity(300)
        sceneView.delegate = self
        sceneView.session.delegate …
Run Code Online (Sandbox Code Playgroud)

iphone ios scenekit swift arkit

3
推荐指数
1
解决办法
693
查看次数

如何将 Storyboard ViewController 添加到 SwiftUI 项目中?

我正在处理我的 SwiftUI 项目,现在每个视图都在 SwiftUI 中,但是由于 SwiftUI 的一些限制,我必须将 Storyboard 的 ViewControllers 添加到我的 SwiftUI 项目中。我正在尝试这种方法,

struct AssetsListView: UIViewControllerRepresentable {

var taskID : String
public typealias UIViewControllerType = AssetsListViewController

func makeUIViewController(context: UIViewControllerRepresentableContext<AssetsListView>) -> AssetsListViewController {
    let assetsListVC = AssetsListViewController()
    assetsListVC.taskID = taskID
    return assetsListVC

}
func updateUIViewController(_ uiViewController: AssetsListViewController, context: UIViewControllerRepresentableContext<AssetsListView>) {


}  
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,甚至我的故事板的 ViewController 调用的 viewDidLoad() 方法,但我无法在我的故事板屏幕上看到任何元素。我该如何渲染这些元素?就像普通的故事板一样。

xcode storyboard ios swift swiftui

3
推荐指数
1
解决办法
1509
查看次数

SwiftUI:从子视图中关闭模式

我试图在其预期操作完成后解除模态,但我不知道目前如何在 SwiftUI 中完成此操作。此模式由@State值更改触发。是否可以通过观察各种通知来更改此值?

想要的动作:Root -> Initial Modal -> Presents Children -> Dismiss modal from any child

以下是我尝试过的

错误:转义闭包捕获变异的“self”参数

struct AContentView: View {
    @State var pageSaveInProgress: Bool = false

    init(pages: [Page] = []) { 
    // Observe change to notify of completed action
        NotificationCenter.default.publisher(for: .didCompletePageSave).sink { (pageSaveInProgress) in
            self.pageSaveInProgress = false
        }
    }

    var body: some View {
        VStack {
        //ETC
            .sheet(isPresented: $pageSaveInProgress) {
                    ModalWithChildren()
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

ModalWithChildren 测试动作


Button(action: {
    NotificationCenter.default.post(
        name: .didCompletePageSave, object: nil)}, 
        label: …
Run Code Online (Sandbox Code Playgroud)

uiview ios swift swiftui combine

2
推荐指数
1
解决办法
831
查看次数

标签 统计

ios ×3

swift ×3

swiftui ×2

arkit ×1

combine ×1

iphone ×1

scenekit ×1

storyboard ×1

uiview ×1

xcode ×1