SuperMap iMobile for iOS产品包中的范例工程都是应用storyboard设计界面而没有使用xib。本文介绍工程中不使用storyboard,只用xib设计界面,如何应用SuperMap iMobile for iOS,希望能给不习惯storyboard的读者提供一些参考。
注:本文使用环境为Xcode 4.6,iMobile for iOS 7.0.0.0528。
新建工程
启动xcode,选择菜单 File | New | Project…,新建工程,工程类型选择Empty Application,如图 1所示。新建后的工程目录结构如图 2所示。
图1
图2
添加Framework
将产品包中的库文件SuperMap.framework拖拽到工程的Frameworks目录下,库文件位于/Library/SDKS/SuperMap/iOS目录,如图 3所示。然后将库文件中的资源文件 SuperMap.bundle 也拖拽到工程目录的Frameworks目录下。
按图 4所示步骤,添加工程依赖的库:QuartzCore.framework 、OpenGLES.framework和CoreLocation.framework。
库都添加后,工程目录结构如图 5所示。
修改工程设置
Other Linker Flags设置-ObjC -lstdc++,如图 6。
另外,本文用的是模拟器运行工程,需要改动图 7中红框所示的两个参数,否则有链接错误。如果目标机器是真机,采用新建工程的默认设置能编译通过则不需要动此处。
新建ViewController
选择菜单 File | New | File…,选择Objective-C class。
类名称MyViewController,类继承自UIViewController,勾选With XIB for user interface复选框,如图 9所示。
设置xib
打开xib文件,如图 10中4所示的红框中,将UIView的改为MapControl。
切换到Assistant Editor,此时左侧为xib界面,右侧为MyViewController.h的编辑区域,选中MapControl,切换到Connections inspector,新建Outlet连接,如图 11所示。
编写代码
1、MyViewController.h文件中,引入SuperMap包的头文件,定义工作空间和地图控件。
2、MyViewController.m文件中,viewDidLoad方法中加入打开数据代码:如图 13所示,首先初始化工作空间和地图控件对象,然后将地图控件作为子视图加到view中,然后打开位于Document目录下的World示范数据。
3、AppDelegate.h中,定义MyViewController。
4、AppDelegate.m的application方法中,设置MyViewController。
拷贝数据和许可
1、选择目标设备,本文选择了iPhone 6.1 Simulator,如图 16所示,运行程序。
2、首次运行,工程的Document目录下无数据,运行界面会如图 17所示。
3、将示范数据和许可文件拷贝到模拟器工程的Document目录中,如图 19所示。
4、程序打开数据后,显示效果如图 18所示。
PS:如果使用的是真机,拷贝数据和许可文件时,需要借助iTunes或第三方工具(如iTools)。iTunes共享文件操作过程,请参考iMobile for iOS的联机帮助的产品入门操作步骤,见图 20。