小编Win*_*ngs的帖子

如何在Swift中放入Array的第一个和最后一个元素

我有这样的字典

["Price": ["$00.00 - $200.00", "$200.00 - $400.00", "$600.00 - $800.00"]]
Run Code Online (Sandbox Code Playgroud)

现在我将所有字典值存储在这样的数组中

var priceRange: [String] = [String]()
if let obj = currentFilters["Price"] as? [String] {
        self.priceRange = obj
        printD(self.priceRange)
    }
Run Code Online (Sandbox Code Playgroud)

通过使用Array.firstArray.last方法,我将得到我的数组的第一个元素和最后一个元素的值.

let first = priceRange.first ?? "" // will get("[$00.00 - $200.00]")
let last = priceRange.last ?? ""   // will get("[$600.00 - $800.00]")
Run Code Online (Sandbox Code Playgroud)

但我真正想要的是我想要的$ 00.00,从第一$ 800去年作出的所需组合[$点- $ 800.00] .

我怎样才能做到这一点.请帮忙?

arrays ios swift

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

在Swift中使用AVAssetWriter将AVCaptureVideoDataOutput保存到电影文件

我一直在网上浏览所有内容,但似乎找不到所需的教程或帮助。

使用AVFoundation和Dlib库,我创建了一个应用程序,可以使用手机上的前置摄像头从实时视频中检测人脸。我正在使用Shape Predictor 68 Face Landmarks 执行此操作。为此,我敢肯定我必须使用AVCaptureVideoDataOutputAVMovieFileOutput而不是AVMovieFileOutput,以便可以分析每个帧。

现在,我希望能够将视频保存到文件中,并根据收集的信息AVAssetWriter来执行此操作。我只是在任何地方都找不到太多有关如何开始使用此方法的信息。我对Swift和iOS编程是完全陌生的,并且从Apple文档中不能真正了解很多。

如果有人可以帮助我,将不胜感激!

xcode avfoundation avassetwriter swift swift4

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

返回 swift 4 中的特定视图控制器

假设我有五个视图控制器,我想转到特定的视图控制器

RootViewController ==> FirstViewController ==> SecondViewController ==> ThirdViewController ==> FourViewController(模态呈现有一个按钮)和我通过推送方法连接的所有其他控制器。我的任务是当单击按钮时,我想从第四个视图控制器转到第一个视图控制器。有什么帮助吗?

        for controller in self.navigationController!.viewControllers as Array {
        if controller.isKind(of: HomeViewController.self) {
            self.navigationController!.popToViewController(controller, animated: true)
            break
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是我所做的代码。

uiviewcontroller uinavigationcontroller ios swift

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

如何在MGLMultiPolygonFeature中找到中心坐标

我正在使用iOS MapboxSDK,并且需要在多边形中找到中心坐标,因为我想在中心坐标中添加标记。如何在Swift中执行此操作?

func drawPolygonFeature(shapes: [MGLShape & MGLFeature]) {
    let shapeSource = MGLShapeSource(identifier: "MultiPolygonShapeSource", shapes: shapes, options: nil)

    let lineStyleLayer = MGLLineStyleLayer(identifier: "LineStyleLayer", source: shapeSource)
    lineStyleLayer.lineColor = NSExpression(forConstantValue: UIColor.purple)
    lineStyleLayer.lineOpacity = NSExpression(forConstantValue: 0.5)
    lineStyleLayer.lineWidth = NSExpression(forConstantValue: 4)

    DispatchQueue.main.async(execute: {[weak self] in
        guard let self = self else { return }
        self.mapView.style?.addSource(shapeSource)
        self.mapView.style?.addLayer(lineStyleLayer)

        let multiPolygonFeature = shapes.first as? MGLMultiPolygonFeature
        if let centerCoordinate = multiPolygonFeature?.polygons.first?.coordinate {
            self.mapView.centerCoordinate = centerCoordinate
            // but centerCoordinate var does not contain the center coordinate
        }
    })
}
Run Code Online (Sandbox Code Playgroud)

mapbox mkpolygon swift

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

在 Firestore for Swift 中按时间戳传递和过滤项目

我试图Timestamp在我的应用程序中通过 Firestore中的今天日期。我得到今天的日期是这样的

formatter.dateFormat = "MMMM d, yyyy"
let result = formatter.string(from: date)
print("Today date is \(result)")
let startDate = result + " " + "07:00:00"
let endDate = result + " " + "23:00:00"
Run Code Online (Sandbox Code Playgroud)

我必须从早上 7 点到下午 23:00 传递今天的日期,并将这些日期存储在startDate和 中endDate。现在我在这样的Firestore查询中传递这些时间:-

self.db.collection("Locations").whereField("userid", isEqualTo: "\(selectedUserID)").whereField("createddatetime", isGreaterThanOrEqualTo: "\(startDate)").whereField("createddatetime", isLessThanOrEqualTo: "\(endDate)").getDocuments()
Run Code Online (Sandbox Code Playgroud)

但我的快照没有得到任何结果。我怎样才能做到这一点。请帮忙?

在此处输入图片说明

ios firebase swift google-cloud-firestore

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

Swift 4中的statusBarStyle

这是我在AppDelegate类(Swift 4)中编写的代码:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
     UIApplication.shared.statusBarStyle = .lightContent
    goToRootViewController()
    UINavigationBar.appearance().isTranslucent = true

    UINavigationBar.appearance().shadowImage = UIImage()
    UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .default)
    GMSServices.provideAPIKey(googleMapApiKey)
    return true
}
Run Code Online (Sandbox Code Playgroud)

但我的状态栏没有显示轻量级内容我不知道什么是ging,任何帮助?

statusbar uinavigationbar ios swift

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

从 Firestore Swift 获取文档 ID

我试图Firestore通过执行如下查询来获取文档 ID:-

func updateStatusInFirestore() {

let orderid = saleOrder.first?.Orderid ?? ""
print(orderid)
let settings = db.settings
settings.areTimestampsInSnapshotsEnabled = true
db.settings = settings
 self.db.collection("SaleOrders").whereField("orderid", isEqualTo: "\(orderid)").getDocuments { (snapshot, err) in

    if let err = err {
        print("Error getting documents: \(err)")
    } else {
        for document in snapshot!.documents {
            self.documentid = document.documentID
            print(self.documentid)
        }
    }
}

}
Run Code Online (Sandbox Code Playgroud)

其中我从模型类中获取订单 id,并且它正在打印订单 id 的值,但是当我尝试将其放入whereField查询中时,它不会执行查询,并且我在控制台中没有得到任何结果。

如果我这样使用它就可以工作

self.db.collection("SaleOrders").whereField("orderid", isEqualTo: "ji20190205091948").getDocuments
Run Code Online (Sandbox Code Playgroud)

但是当我这样使用时

let orderid = saleOrder.first?.Orderid ?? ""
self.db.collection("SaleOrders").whereField("orderid", isEqualTo: "\(orderid)").getDocuments
Run Code Online (Sandbox Code Playgroud)

它不起作用。我做错了什么。请帮忙?

ios swift google-cloud-firestore

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

在swift中根据textfield更改tableview数据

我想根据改变TableView数据Textfield.当用户点击Textfield并开始编辑时,它将相应地改变TableView data.我看到了很多例子,但主要是我发现有关搜索栏的任何帮助都会受到赞赏.请注意,这是textfield not seacrhbar

iphone uitableview uitextfield ios swift

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

如何在ios中将视频文件发送到firebase存储

我正在开发视频共享 iOS 应用程序并Firebase5用作后端。它允许用户可以选择视频并将其发送到存储。当我尝试时,视频无法推送到database服务器。下面是我的代码:

static func uploadVideoToFirebaseStorage(videoUrl: URL, onSuccess: @escaping (_ videoUrl: String) -> Void) {
    let videoIdString = NSUUID().uuidString
    //Config.STORAGE_ROOT_REF is var STORAGE_ROOT_REF = "gs://****-cdc3c.appspot.com"
    let storageRef = Storage.storage().reference(forURL: Config.STORAGE_ROOT_REF).child("posts").child(videoIdString)
    storageRef.putFile(from: videoUrl, metadata: nil) { (metadata, error) in
        if error != nil {
            ProgressHUD.showError(error!.localizedDescription)
            return
        }
    }
    storageRef.downloadURL(completion: { (url, error) in
        if let error = error {
            return
        }else {
            let videoUrl = url!.absoluteString
            onSuccess(videoUrl)
        }
    })
}      
Run Code Online (Sandbox Code Playgroud)

ios firebase swift

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

在 SCNNode / ARKit Swift 中获取图像的大小

我正在尝试扫描参考图像,然后在打印的参考图像上方显示图像本身。“虚拟”图像尺寸应与打印尺寸相同。

我的想法:获取打印的参考图像的大小,然后将图像缩放SCNNode到此大小(或将 SCNNode 缩放到此大小?)

但是:1-> 如何获得打印图像的大小,2-> 缩放SCNNode我也需要这个节点的大小。如何获得?

import UIKit
import SceneKit
import ARKit
import AVKit
import AVFoundation

class ViewController: UIViewController, ARSCNViewDelegate {

@IBOutlet var sceneView: ARSCNView!
private var planeNode: SCNNode?
private var imageNode: SCNNode?
private var animationInfo: AnimationInfo?
private var currentMediaName: String?
private var scrollView: UIScrollView!

override func viewDidLoad() {
    super.viewDidLoad()

    let scene = SCNScene()
    sceneView.scene = scene
    sceneView.delegate = self

}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    // Load reference images to look for …
Run Code Online (Sandbox Code Playgroud)

uiimage swift scnnode arkit

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

我如何在 swift 5 上工作推送视图控制器?

CollectionView或TableView中的Didselect函数;

let trial = TrialViewController ()
self.navigationController?.pushViewController (trial, animated: true)
Run Code Online (Sandbox Code Playgroud)

我想转到另一个页面,但它没有响应。当我打字时,同样的事情也在发生。

self.present (den, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

当我打字时正在工作。

为什么pushViewController不工作?

谢谢

swift

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

快速返回根视图控制器

有没有办法关闭所有视图控制器(其中一些控制器通过导航推送)并返回到根视图控制器。我看到了很多例子,但它们在我的应用程序中不起作用。我正在使用 swift 4

这是 appdelegate 中的代码

func setNavigationToRootViews(){

    storyBoard = UIStoryboard(name: "Main", bundle: nil)
    nav = storyBoard?.instantiateViewController(withIdentifier: "mainNavigation") as! UINavigationController?
    let accessToken: String? = KeychainWrapper.standard.string(forKey: "token")
    print(accessToken as Any)

   if accessToken != nil {

        let homeVc = storyBoard?.instantiateViewController(withIdentifier: "Home-VC") as! HomeViewController
        nav?.pushViewController(homeVc, animated: false)
    }else{

        let welcomVc = storyBoard?.instantiateViewController(withIdentifier: "login-VC") as! LoginViewController
        nav?.pushViewController(welcomVc, animated: false)
    }

    let leftMenuVC = storyBoard?.instantiateViewController(withIdentifier: "menu-VC") as! MenuViewController
    container = MFSideMenuContainerViewController.container(withCenter: nav, leftMenuViewController: leftMenuVC, rightMenuViewController: nil)
    container?.panMode = MFSideMenuPanModeNone
    window?.rootViewController = container
    window?.makeKeyAndVisible()

}
Run Code Online (Sandbox Code Playgroud)

这在我的最后一个视图控制器中 …

ios swift

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