编辑:我认为这可能是关于从Objective-C库加载.xib并将其显示在swift的视图控制器上
我一直在尝试在快速的应用程序中使用https://github.com/promet/PRAugmentedReality库。
在下面,您可以看到将这个库集成到我的swift项目中时的步骤,我的swift项目代码以及Objective-C和Swift项目的下载链接。另外,这里还有用于PR Augmented Reality Framework的youtube视频:
链接1:入门-> https://www.youtube.com/watch?v=fdN0XAoZXOY
链接2:内部演练-> https://www.youtube.com/watch?v=Xmx-0OnzTPY
Swift项目步骤:
然后我像这样将头文件导入到我的桥接文件(PRAR.h)中
#import <PRAR/ARSettings.h>
#import <PRAR/PRARManager.h>
#import <PRAR/ARController.h>
#import <PRAR/ARObject.h>
#import <PRAR/ARRadar.h>
#import <PRAR/LocationMath.h>
在我的swift项目中运行此框架的其余工作仍保留在ViewController.swift文件中,例如:
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")
}
}
您可以在下面下载Objective-C和Swift项目。我只希望Swift项目能够作为Objective-C项目运行。我怎样才能做到这一点?我一直在遍历所有框架和代码,但看不到任何错误。* ps:我使用的是Xcode 7.2.1版
Swift项目的链接:https : //drive.google.com/file/d/0B-cDfWHidgvcYnFNcnlMZG1aaDg/view?usp=sharing
Objective-C项目的链接:https : //drive.google.com/file/d/0B-cDfWHidgvcQUFXbktYSE5CeHM/view?usp=sharing
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句