edit: Penso che potrebbe essere di circa carico .xib dalla libreria Objective-C e la visualizzazione sul controller della vista di Swiftcorrettamente utilizzando la libreria Obj-C nel progetto Swift
Ho cercato di usare https://github.com/promet/PRAugmentedReality libreria in un'app rapida.
Funziona perfettamente con obj-c, come:
Ma quando ho ponte al progetto rapido che inizia ad agire in questo modo:
Qui sotto potete vedere i miei passi quando ho integrato questa libreria al mio rapido progetto, i codici del mio progetto rapido e il link per il download per entrambi i progetti obiettivo-c e rapido. Anche qui sono i video di YouTube per PR Augmented quadro Realtà:
Link 1: Getting Started -> https://www.youtube.com/watch?v=fdN0XAoZXOY
Link 2: Walkthrough of Internals-> https://www.youtube.com/watch?v=Xmx-0OnzTPY
Swift fasi del progetto:
- Creazione di una singola applicazione vista con Xcode Versione 7.2 .1 (7C1002) denominato demoAR
- Aggiungo Foundation.framework, CoreGraphics.framework e UIKit.framework da Target -> demoAR -> Build Phases -> Link Binar y con Librerie
- Quindi, File -> Nuovo target -> Cocoa Touch Framework e fatto clic su Avanti
- Creato un Target che ha queste proprietà: Nome prodotto: PRAR, Lingua: Objective-C e Identificatore organizzazione: com.timur. PRAR poi ho cliccato Finish
- Ho creato un altro gruppo sotto PRAR e l'ho chiamato "Classes", quindi ho copiato i file dalla cartella Classes di framework e li ho aggiunti alla cartella PRAR/Classes.
- ho cambiato ogni file .h di di framework di destinazione L'iscrizione a "Pubblico"
Poi ho importato i file di intestazione per il mio file di bridging (PRAR. h) Ti piace questa
#import <PRAR/ARSettings.h> #import <PRAR/PRARManager.h> #import <PRAR/ARController.h> #import <PRAR/ARObject.h> #import <PRAR/ARRadar.h> #import <PRAR/LocationMath.h>
resto di ciò che viene fatto al fine di eseguire questo quadro all'interno del mio progetto rapida rimane nel mio file ViewController.swift quali:
import UIKit import PRAR var prARManager = PRARManager() let x: Int32 = AR_VIEW_TAG let y = Int(x) class ViewController: UIViewController, PRARManagerDelegate{ func alert(title: String, withDetails details: String) { print("alert function") let alert: UIAlertView = UIAlertView(title: title, message: details, delegate: nil, cancelButtonTitle: "Ok", otherButtonTitles: "") alert.show() } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. print("1") // AŞAĞIDAKİ SATIRDA BİR SORUN VAR!!! prARManager = PRARManager.init(size: self.view.frame.size, delegate: self, showRadar: true) print("2") } override func viewDidAppear(animated: Bool) { print("3") let locationCoordinates = CLLocationCoordinate2D(latitude: 41.085468, longitude: 29.044033) print("4") prARManager.startARWithData(self.getDummyData() as [AnyObject], forLocation: locationCoordinates) print("5") } func getDummyData() -> NSArray { print("6") let dummyData: [AnyObject] = [["id": 0, "lat": 40.9780919, "lon": 27.511674, "title": "Tekirdağ"], ["id": 1, "lat": 40.8025157, "lon": 29.4397941, "title": "Gebze"]] print("7") return dummyData; } func prarDidSetupAR(arView: UIView, withCameraLayer cameraLayer: AVCaptureVideoPreviewLayer, andRadarView radar: UIView) { print("8") NSLog("Finished displaying ARObjects") print("9") self.view.layer.addSublayer(cameraLayer) print("10") self.view!.addSubview(arView) print("11") self.view.bringSubviewToFront(self.view.viewWithTag(y)!) //self.view.bringSubviewToFront(self.view!.viewWithTag(AR_VIEW_TAG)); //self.view!.bringSubviewToFront(self.view!.viewWithTag(042313)!) //print("12") self.view.addSubview(radar) //print("13") } func prarUpdateFrame(arViewFrame: CGRect) { print("14") self.view.viewWithTag(y)?.frame = arViewFrame print("hello") //self.view.viewWithTag(AR_VIEW_TAG)!.frame = arViewFrame //self.view!.viewWithTag(042313)!.frame = arViewFrame print("15") } func prarGotProblem(problemTitle: String!, withDetails problemDetails: String!) { print("16") self.alert(problemTitle, withDetails: problemDetails) print("17") } }
Qui di seguito è possibile scaricare l'Objective-C e progetti veloci. Voglio solo che un progetto rapido sia in grado di funzionare come progetto obiettivo-c. Come lo posso fare? Sto camminando costantemente attraverso tutto il framework e il mio codice ma non riesco a vedere qualcosa di sbagliato. * ps: sto usando Xcode versione 7.2.1
collegamentodel progetto Swift: Link https://drive.google.com/file/d/0B-cDfWHidgvcYnFNcnlMZG1aaDg/view?usp=sharing
del progetto Objective-C: https://drive.google.com/file/d/0B-cDfWHidgvcQUFXbktYSE5CeHM/view?usp=sharing
* ps: Ho provato a formattare il più possibile, ma ora sembra qualcosa di sbagliato con StackOverflow. Impossibile formattare il codice in modo corretto. –
Penso che potrebbe essere il caricamento del file .xib dalla libreria Object-C e la visualizzazione sul controller di visualizzazione di swift. Qualche idea ... –