小编Kau*_*ana的帖子

SwiftUI:将多个BindableObjects放入环境

SwiftUI有可能使用environmentObjectView对象的方法把一个单一BindableObject到环境中。

如果我想同时将多个BindableObjects放入环境中怎么办?我在SwiftUI文档中没有找到任何解决方案。我不想在构造函数中传递对象。

dependency-injection ios swift swiftui

11
推荐指数
1
解决办法
1127
查看次数

添加SCNBillboardConstraint会使节点消失

在我在文档和互联网上阅读之后,我SCNBillboardConstraint会将节点旋转到始终面向pointOfView节点 - 在ARKit用户的相机的情况下.

问题是,当我添加SCNBillboardConstraint到子节点时,它消失了.节点只是SCNTexts添加为更复杂模型的子节点.层次结构如下所示:RootNode - > Text节点(其中两个).

在我将根节点添加到场景的根节点之后,我按以下方式添加此约束:

updateQueue.async {
    self.sceneView.scene.rootNode.addChildNode(virtualObject)
    self.sceneView.addOrUpdateAnchor(for: virtualObject)
    self.addBillboardContraintsToText(object: virtualObject)
}

func addBillboardContraintsToText(object: VirtualObject) {
    guard let storeNode = object.childNodes.first else {
           return
   }

   for node in storeNode.childNodes {
        if let geometry = node.geometry, geometry.isKind(of: SCNText.self) {
            let billboard = SCNBillboardConstraint()
            node.constraints = [billboard]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

文本节点的位置相对于其根节点设置正确,因此没有问题.当我添加一个,SCNLookAtConstraint但它的工作正常.

node.pivot = SCNMatrix4Rotate(node.pivot, Float.pi, 0, 1, 0)
let lookAt = SCNLookAtConstraint(target: sceneView.pointOfView)
lookAt.isGimbalLockEnabled = true
node.constraints = …
Run Code Online (Sandbox Code Playgroud)

ios scenekit swift arkit

10
推荐指数
1
解决办法
898
查看次数

找不到自动链接框架

我已经分叉了一个叫做BTNavigationDropdownMenu(iOS的swift项目)的框架。一切正常,直到我尝试在我创建的分支中向最新版本添加依赖项。无论我是DYBadge通过podfile还是通过添加其他框架(),问题都是相同的Carthage

找不到自动链接框架DYBadge

UIView扩展名似乎有问题DYBadge

DYBadge 在我正在使用的主应用程序中工作正常(我在应用程序目标中也需要它)。

错误如下。感谢您对正确方向的任何提示。

ld:警告:找不到自动链接框架DYBadge架构x86_64的未定义符号:“(在DYBadge中扩展):__ ObjC.UIView.getBadge()-> DYBadge.DYBadge?”,引用自:Demo.BTNavigationDropdownMenu.updateBadge(text: Swift.String,位于:BTNavigationDropdownMenu.o中的Swift.Int)->()ld:找不到架构x86_64铛的符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)

xcode frameworks ios swift

10
推荐指数
3
解决办法
2万
查看次数

如何在iOS9中的AVPlayerViewController中退出全屏模式

我正在使用iOS应用程序.我需要在纵向和横向模式下播放视频.我已经实现了AVPlayerViewController来播放视频.我已经实现了视频完成然后弹出到前一个屏幕.每件事情都很好但是当用户在人像模式下播放视频并点击全屏按钮时,播放器进入全屏模式但视频结束,然后播放器屏幕不弹出,完成按钮不起作用.如何解决这个问题?

avplayer swift ios9 avplayerviewcontroller ios9.1

8
推荐指数
0
解决办法
1369
查看次数

如何在 webview (swift 4.0) 中设置 html 字符串

当我尝试加载这种类型的html字符串时,我遇到了问题

(<p>Identify the arrow-marked structures in the images<img alt=\"\" src=\"https:\/\/dams-apps-production.s3.ap-south-1.amazonaws.com\/course_file_meta\/73857742.PNG\" \/><\/p>\r\n)
Run Code Online (Sandbox Code Playgroud)

webview。问题是由于向后倾斜而引发的。

任何帮助都会受到赞赏

html swift xcode9

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

在 Swift WKWebView 中捕获 window.postMessage

我正在开发一个WKWebView用于加载电子商务网站的 swift ios 应用程序。
当用户在这里购买产品时,结账页面允许用户使用加密货币支付。

当用户点击“在钱包中打开”时,网站会发出一个 window.postMessage(paymentData) 支付数据是一个 js 对象,其中包含一个比特币 URL。

我正在使用WKUserScriptwithWKWebConfiguration注入一个脚本,该脚本侦听窗口消息,然后将数据发送到我的webkit.messageHandler.

let source = """
    window.addEventListener('message', function(e) { window.webkit.messageHandlers.iosListener.postMessage(JSON.stringify(e.data)) } )
    """
Run Code Online (Sandbox Code Playgroud)

不幸的是,这段代码永远不会触发。

当我使用 chrome 或 safari devtools 注入相同的 javascript 时,它工作得很好。

我已经搜索了堆栈溢出以查看window.postMessagein是否存在特殊条件,WKWebView但到目前为止还没有运气。

是否可以捕获window.postMessage()事件并将事件数据通过管道传输回我的 ios 应用程序?

提前致谢!!!!这是我现有的代码。

  let webConfiguration = WKWebViewConfiguration()
    let source = """
    window.addEventListener('message', function(e) { window.webkit.messageHandlers.iosListener.postMessage(JSON.stringify(e.data)) } )
    """
    let script = WKUserScript(source: source, injectionTime: .atDocumentEnd, forMainFrameOnly: false)
    userContentController.addUserScript(script)

    userContentController.add(self, name: "iosListener")
    webConfiguration.userContentController = …
Run Code Online (Sandbox Code Playgroud)

javascript native ios swift wkwebview

7
推荐指数
1
解决办法
8978
查看次数

RLMException 尝试在检查后使用现有主键创建对象

我收到一个RLMException原因如下:

尝试使用现有的主键值“258975085-504336622-62850”创建类型为“Student”的对象。

令人困惑的部分是,它是在检查 Realm 中没有具有此键的现有对象之后发生的。

let realm = try Realm()
if let info = realm.object(ofType: Student.self, forPrimaryKey: newStudent.userId) {
    try realm.write {
        info.name = newStudent.name
        info.school = newStudent.school
        info.email = newStudent.email
    }
}
else {
    try realm.write {
        realm.add(newStudent) //RLMException occurs here
    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码在 GCD 实用程序队列上异步运行,位于 do/catch 块内。它由用户界面中的按钮触发,但同时没有其他任何东西访问领域。

为什么那个 if 语句允许 else 代码运行?

realm ios swift

6
推荐指数
1
解决办法
5232
查看次数

SKLabelNode + NSMutableAttributedString = 无阴影

    let paragraph = NSMutableParagraphStyle()
    paragraph.alignment = NSTextAlignment.right
    paragraph.tailIndent = -3
    let shadow = NSShadow()
    shadow.shadowBlurRadius = 5
    shadow.shadowColor = UIColor.gray
    shadow.shadowOffset = CGSize(width: 2, height: -2)
    let text = NSMutableAttributedString(string: "MY LABEL", attributes:
   [NSShadowAttributeName : shadow,
    NSStrokeColorAttributeName : UIColor.black,
    NSStrokeWidthAttributeName : -3,
    NSForegroundColorAttributeName: UIColor.white,
    NSFontAttributeName : UIFont(name: "MyFont", size: 24) as Any,
    NSParagraphStyleAttributeName : paragraph])

    let node = SKLabelNode()
    addChild(node)
    node.attributedText = attributedString
Run Code Online (Sandbox Code Playgroud)

它有效,但没有阴影。我可以使用相同的NSMutableAttributedString上著名的ASAttributedLabel和它的作品不错,有一个影子,但我想使用SKLabelNode,以实现更好的性能IOS11ASAttributedLabel可能会滞后于动态场景:(

nsattributedstring nsmutableattributedstring sprite-kit sklabelnode swift

6
推荐指数
0
解决办法
375
查看次数

PassBookUiService意外退出

我用条纹实现苹果支付.我遵循条纹的官方文件.因此,每当我点击带苹果按钮的购买时,它都不会显示付款单.它显示的是一个错误

"passbookUiSevice意外退出".

并且远程警报视图服务的连接失败,

无法显示应用内付款界面:错误域= PKPassKitErrorDomain代码= -1"付款界面不可用"UserInfo = {NSLocalizedDescription =付款界面不可用.

当在Macbookair中在模拟器中运行相同的代码时,它工作得很好,但它在imac中不起作用.我不知道是什么问题.如何解决这个错误.

stripe-payments swift applepay

5
推荐指数
0
解决办法
554
查看次数

CloudKit离线同步

我正在开发一个CloudKit应用程序.可以fetchAllLongLivedOperationIDs用来处理离线变更吗?

有什么用longLivedOperationWasPersistedBlock

我看到longLivedOperationWasPersistedBlock即使应用程序处于脱机状态也会调用它

ios swift cloudkit

5
推荐指数
1
解决办法
316
查看次数