小编Hun*_*ter的帖子

如何保持ARKit SCNNode到位

嘿,我想弄清楚.如何保持一个简单的节点.当我在ARKit中走动时

码:

 func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {

    if let planeAnchor = anchor as? ARPlaneAnchor {

    if planeDetected == false { // Bool only allows 1 plane to be added
            planeDetected = true
        self.addPlane(node: node, anchor: planeAnchor)
    }

    }
}
Run Code Online (Sandbox Code Playgroud)

这会添加SCNNode

    func addPlane(node: SCNNode, anchor: ARPlaneAnchor) {

    // We add the anchor plane here

    let showDebugVisuals = Bool()
    let plane = Plane(anchor, showDebugVisuals)
    planes[anchor] = plane
    node.addChildNode(plane)



    // We add our custom SCNNode here 

    let …
Run Code Online (Sandbox Code Playgroud)

ios swift arkit

20
推荐指数
1
解决办法
7607
查看次数

如何在Swift中添加双击手势识别器

我已经完成了一个单击识别器,但无法弄清楚如何将该单击识别器改为双击.我可以使用一些指导.

码:

import Foundation
import UIKit

class MainBoardController: UIViewController{

    let tap = UITapGestureRecognizer()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        var swipe: UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "GotoProfile")
        swipe.direction = UISwipeGestureRecognizerDirection.Right
                    self.view.addGestureRecognizer(swipe)

        tap.addTarget(self, action: "GotoCamera")
        view.userInteractionEnabled = true
        view.addGestureRecognizer(tap)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func GotoProfile(){
        self.performSegueWithIdentifier("Profilesegue", sender: nil)
    }

    func GotoCamera(){
        self.performSegueWithIdentifier("Camerasegue", sender: nil)
    }
}
Run Code Online (Sandbox Code Playgroud)

uigesturerecognizer swift

12
推荐指数
4
解决办法
2万
查看次数

如何在UIAlert中按下确定时调用函数

我试着简单地调用一个名为"GoToNewShoot"的函数当用户按下"确定"按钮时,警报弹出谢谢!

码:

   @IBAction func GobacktoCamera(sender: AnyObject) {
    var alertController = UIAlertController(title: "Just Checking", message: "Are You Sure You Want to Start over ", preferredStyle: UIAlertControllerStyle.Alert)
    alertController.addAction(UIAlertAction(title: "Yes", style: UIAlertActionStyle.Cancel, handler: nil))
    self.presentViewController(alertController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

uialertview swift

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

如何将 float3 转换为 SIMD3<Float> (Xcode 11 Swift 5 对 float3 和 float4 给出折旧警告)

我试图让我的代码没有警告。因为我刚刚更新了 Xcode,并且知道收到警告信号。我也尝试在下面解决这个问题。

这是给我警告的代码:

代码:

extension float4x4 {
var translation: float3 {
    return float3(columns.3.x, columns.3.y, columns.3.z)
}

init(translation vector: float3) {
    self.init(float4(1, 0, 0, 0),
              float4(0, 1, 0, 0),
              float4(0, 0, 1, 0),
              float4(vector.x, vector.y, vector.z, 1))
 }
}

extension float4 {
  var xyz: float3 {
    return float3(x, y, z)
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这是我尝试翻译的内容如下:

代码:

extension SIMD4 {
var translation: SIMD3<Float> {
    return SIMD3(columns.3.x, columns.3.y, columns.3.z)
}

  init(translation vector: SIMD3<Float>) {
    self.init(SIMD4<Float>(1, 0, 0, 0),
              SIMD4<Float>(0, 1, 0, 0),
              SIMD4<Float>(0, 0, 1, 0), …
Run Code Online (Sandbox Code Playgroud)

floating-point xcode swift

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

如何创建一个可以取类的值类型的空变量

嘿我想弄清楚如何将变量设置为空类的类型.如果这不是一个错误,请像这样:

码:

  var PlayerEquipped = class() // failed attempt at trying set up a blank variable that can take the type of a class
Run Code Online (Sandbox Code Playgroud)

或者制作一个我可以在将来改变的变量.所以基本上我可以创建一个这样的全局变量,并为其分配一个没有问题的类.

码:

   var PlayerEquipped = House()

          //In another .swift file i have the 2 classes

    class House {
    init() {
     }
    }

    class House2 {
    init() {
     }
    }
Run Code Online (Sandbox Code Playgroud)

但即使它设置为"var"我仍然会在尝试将"SelectClass"变量更改为其他类时出错.例如,如果我要创建一个带有文本"Hello"in in side的字符串变量,那么稍后在我的视图中,load负责决定将该变量文本更改为"GoddBye",它会让我这样做.但是,如果我尝试将"SelectedClass"变量更改为其他类,我会收到此错误.它说'不能分配saintsRB类型的值来键入saintsLB'代码:

      var PlayerEquipped = House()

   //down in view didload:
       PlayerEquipped = House2() // Error here
Run Code Online (Sandbox Code Playgroud)

图片错误

xcode ios swift

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

尝试读取无主引用,但对象已被解除分配 Swift 5

我有一个变量的释放问题:缓存

这是来自教程Reusable Image Cache in Swift

在此处输入图片说明

错误:

致命错误:尝试读取无主引用,但对象 0x280208080 已被释放致命错误:尝试读取无主引用,但对象 0x280208080 已被释放

代码:

final class ImageLoader {

private let cache = ImageCache()

func loadImage(from url: URL) -> AnyPublisher<UIImage?, Never> {
    if let image = cache[url] {
        return Just(image).eraseToAnyPublisher()
    }
    return URLSession.shared.dataTaskPublisher(for: url)
        .map { UIImage(data: $0.data) }
        .catch { error in return Just(nil) }
        .handleEvents(receiveOutput: {[unowned self] image in
            guard let image = image else { return }
            self.cache[url] = image
        })
        .subscribe(on: DispatchQueue.global(qos: .background))
        .receive(on: RunLoop.main)
        .eraseToAnyPublisher()
} …
Run Code Online (Sandbox Code Playgroud)

xcode ios swift

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

如何更改 AVPlayer 视频的速率

嘿,我正在尝试以不同的速率(较慢)播放视频。我似乎无法让它工作。

代码:

这行代码不起作用

playerLayerView.player?.rate = 0.50
Run Code Online (Sandbox Code Playgroud)

完整代码:

var player = AVPlayer()
var playerLayer = AVPlayerLayer()
var playerLayerView = AVPlayerViewController()


let path = Bundle.main.path(forResource: "Video", ofType: "mov")
let prl = URL(fileURLWithPath: path!)
player = AVPlayer(url: prl)
playerLayerView.player = player
playerLayerView.view.frame = CGRect(.frame.width * 0.0, .frame.height * 0.0, .frame.width, .frame.height)
playerLayerView.videoGravity = AVLayerVideoGravity.resizeAspectFill.rawValue
playerLayerView.player?.rate = 0.50
player.seek(to: kCMTimeZero)
player.isMuted = false
page.insertSubview(playerLayerView.view, at: 0)
playerLayerView.player?.play()
Run Code Online (Sandbox Code Playgroud)

唯一可以让它发挥作用的原因是。如果我使用 playImmediately 并删除 .Play()

player.playImmediately(atRate: 0.50) //.rate = 1.50 //0.50, 0.67, 0.80, 1.0, 1.25, 1.50, and 2.0
Run Code Online (Sandbox Code Playgroud)

xcode ios avplayer swift

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

如何过滤出数组的数组

您好,我有一个包含多个值的数组,我想尝试过滤掉搜索栏的索引。英语术语的一个例子就像。给我名称“Name2”的索引,并通过检查每个索引的第一个值中的所有字符串来执行此操作。

代码:

 // Multiple Errors 

 var receivedList = [["Name1","Apple","Fresh"],["Name2","Orange","Rotten"],["Name3","Pear","Fresh"],["Name4","Grape","Rotten"]]


 filteredData = data.filter({$0 == searchBar.text})
 filteredData = receivedList.filter({$0 receivedList[1] == searchBar.Text})


 //Im not really sure how to use this or if it's even useful 

 let searchPredicate = NSPredicate(format: "Orange CONTAINS[C] %@", searchText)

 let array = (receivedList as NSArray).filtered(using: searchPredicate)
Run Code Online (Sandbox Code Playgroud)

我在这里检查了这些页面。

快速筛选字典数组

快速过滤字典

过滤器数组的对象具有多个标准和类型在 swift

还有其他一些人,运气不好

arrays swift

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

如何检查索引是否是数组中的最后一个

嘿,我正在尝试创建一个 if 语句来遍历整个数组,然后询问该索引是否是数组中的最后一个。

这是我到目前为止所拥有的。

代码:

 func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath)  { // Called for each cell made

  if notificationList[indexPath.row] == notificationList.last! {

        print("At last index")

   }
}
Run Code Online (Sandbox Code Playgroud)

更新:

实际上我认为这可行,但我会采取其他答案

arrays xcode swift

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