iOS崩溃日志管理,怎样使用Axure中继器做出商品列表

前言:

事例:做出如下效果

澳门葡京备用网址 1

2DEEA28B-7642-48D5-927B-B6BCB5A867B8.png

  1. 点开Azure软件——新建文件—-增多一个页面起好名字(选中后单击鼠标右键能够输入)
![](https://upload-images.jianshu.io/upload_images/6880563-2242f40d8f972829.png)

A236E62B-7166-4B3A-8C7D-517FBC5436E3.png
  1. 双击能够展开那些刚建好的空页面

    澳门葡京备用网址 2

    E8EB6175-C42E-4904-AA6F-2137C732AB2E.png

3.在元件库选择Default,找到 中继器 ,直接可以拖拽出来

![](https://upload-images.jianshu.io/upload_images/6880563-990429334a1e07a0.png)

CFE6C807-AF13-4F8D-AF63-FC82F564C089.png
  1. 在任何分界面包车型客车最左边,点击样式:

    澳门葡京备用网址 3

    09A45793-B01D-4E89-B244-45DAA9C1CFF2.png

5.精选属性面板,能够间接输入,扩大个数

澳门葡京备用网址 4

5714AFE2-E774-4957-8917-3FC985BAA526.png

  1. 双击 中继器 ,步入其间一个框,进行编写制定

    澳门葡京备用网址 5

    70AE655F-CE49-4E9A-BB70-6ABFF0E6F53F.png

  1. 增多图片占位符,加多字体,增添数字等等消息

    澳门葡京备用网址 6

    EF978EEE-21A0-4101-9E8A-93EBB954691F.png

  1. 点击中继器所在页面,能够看到分界面产生如下:

    澳门葡京备用网址 7

    8FAEC3FE-C058-4688-99D7-55B81D092CA1.png

9.回到中继器内部的页面,单击图片,字体等等,在界面最右侧修改自己能够识别的名字(最好是用英文,或者是拼音,方便后面使用;不管是图片还是文字等等,都要命名好名字)



![](https://upload-images.jianshu.io/upload_images/6880563-a5a2869ac5aa6efc.png)

CCF702B6-BB30-4EE0-8F56-0F54472D0EF2.png



![](https://upload-images.jianshu.io/upload_images/6880563-7160f0e140fad034.png)

C5105938-164D-463F-AD22-DCFDDE9252F2.png

  1. 修改名字(用土耳其共和国(Türkiye Cumhuriyeti)语或拼音,自个儿能辨别即可,不可以用粤语,输入的时候,输入法要切换为塞尔维亚(Република Србија)语,不得以用普通话的输入法输入土耳其语),列表上边包车型地铁顺序标题的名字修改一下。
![](https://upload-images.jianshu.io/upload_images/6880563-6babd8179e656bf9.png)

2E2AC10F-0F9F-4C93-8C88-7B97DBAFCD0A.png

  1. 修改内容如下
![](https://upload-images.jianshu.io/upload_images/6880563-d72b6cbaa9798364.png)

  1. 上一步点击分明现在,中继器就形成如下:(名字都被退换了)
![](https://upload-images.jianshu.io/upload_images/6880563-8e133b0b1e812a7e.png)

92863644-41D6-4455-A281-A8A997E36849.png



勤快一点都改一下名字,可以全部变成对应的名字



![](https://upload-images.jianshu.io/upload_images/6880563-d2dcf319d425cb66.png)

CCD373C6-9157-463C-9ED1-ABD08DCF430F.png

  1. 价格的修改也是同样的,具体如下:
    在分界面最右面属性个中,点击增多列 ,编辑名字,填写每一个货物的价钱

澳门葡京备用网址 8

iOS崩溃日志管理,怎样使用Axure中继器做出商品列表。F7CF7E40-5DC8-4B2B-8389-DCBA0849CCC0.png

澳门葡京备用网址 9

7FF02C2B-723E-44E1-AFA2-5EC6C1A2AD59.png

  1. 安分守己上面顺序举办

    澳门葡京备用网址 10

    B162F3E1-CC0C-4E2B-BB85-558B1EFB99F1.png

  1. 加多图片也是大同小异的

    同理,添加列——

    澳门葡京备用网址 11

    C2A8BB57-5477-437F-87EC-B68FA485A584.png

    点击鼠标右键能够导入图片,接下去设置如下,只但是把图纸改为“值”

澳门葡京备用网址 12

793F1CC5-8BEF-4BD4-A5C9-9824D2A89D8A.png

16.即使享有消息填写的比较完整,效果能够表现出来:

澳门葡京备用网址 13

C2ED6422-86C0-47B4-831A-1393155F056A.png

预览效果:

澳门葡京备用网址 14

2DEEA28B-7642-48D5-927B-B6BCB5A867B8.png

斯威夫特3.0基础框架火速支付开源框架(http://www.jianshu.com/p/0f950c180cb8)
本子表达:本文讲的内容所利用的是Xcode版本是7.2版本 斯威夫特是2.1本子。

前言

上下文(CGContext)
是图形绘制前,场景的安放对象。在App的支付中,图形的绘图也是主导的技能。图形绘制的选拔供给开垦者依照实际意况采用差异的绘图方式。前几天我们带来的是
CGContext的绘图。

在iOS开采的进程四月测验阶段会处理掉一部分比较常的荒唐、和崩溃的消息。可是当我们的APP上线之后,假若产生了崩溃的平地风波。对于那一件事件的管理格局:

1.率先部申请百度开荒者 如下图:申请成功

CGContext 的绘图图形

1.方可因而appStore提供的音讯,能查看大家的app是不是有疏失过崩溃,可是无法领略在哪个地方崩溃了。管理起来会很难复现

6B377037-980B-461D-A512-9AF2BC365EDB.png

1、绘制虚线

// MARK: 绘制虚线
func drawDottedLine(rect: CGRect,context:CGContext) -> Void {
    // 设置绘制的颜色
    UIColor.red.set()
    // 设置宽度
    context.setLineWidth(10)
    // 设置起始点
    context.move(to: CGPoint.init(x: 10, y: 50))
    // 添加绘制路径点
    context.addLine(to: CGPoint.init(x: 200, y: 50))
    /**
     绘制虚线

     @phase : 虚线起始线段的长度偏差,则第一段的长度为: lengths[0] - phase
     @lengths : 一个存放虚线间隔和绘制长度的数组
     */
    context.setLineDash(phase: 10, lengths: [10,20,30])
    // 必和路径
    context.strokePath()
}
2.运用第三方的夭亡日志管理,例如:友盟,Tencent的:bugly,很轻便一行代码就足以兑现。国外的: Crashlytics。在此间根本讲一下Crashlytics

2.再一次张开
http://lbsyun.baidu.com
选择->开发->IOS导航SDK 如下图:

效果与利益如下图:

澳门葡京备用网址 15

88F0F6A3-F801-4456-9AD2-4C7C46873024.png

一、筹划工作:

7555B3C9-7ED5-4425-BCA5-7255EAA00535.png

2、绘制曲线

// MARK: 绘制曲线
func drawCurve(rect: CGRect,context:CGContext) -> Void {
    // 设置绘制的颜色
    UIColor.red.set()
    // 设置宽度
    context.setLineWidth(5)
    // 设置起始点
    context.move(to: CGPoint.init(x: 10, y: 50))
    /**
     两点控制曲线

     to : 曲线的结束点
     control1 : 曲线控制点一。
     control2 : 曲线控制点二
     例子:
     context.addCurve(to: CGPoint.init(x: 250, y: 180), control1: CGPoint.init(x: 100, y: 200), control2: CGPoint.init(x: 200, y: 70))

     */
    /**
     单点控制曲线

     to : 曲线的结束点
     control: 曲线的控制点
     */
    context.addQuadCurve(to: CGPoint.init(x: 250, y: 180), control: CGPoint.init(x: 100, y: 200))
    // 必和路径
    context.strokePath()
}
2.1 展开下载的IDE会出如下分界面.在这一个分界面增加须要Crashlytics的种类工程;如图:

澳门葡京备用网址 16荧屏快照2017-01-18
深夜2.07.38.png澳门葡京备用网址 1721AD7037-5013-4A99-8208-13BD66694052.png

7B302071-165C-4422-A809-A6E371E7D6DF.png

功能图如下

澳门葡京备用网址 18

A9079F58-0173-410B-915D-FB2E2FE8A149.png

澳门葡京备用网址 19

A978A3FF-9108-4ABD-870B-04BCB170F78C.png

2.2 采用安装Crashlytics,如图

澳门葡京备用网址 2069CB7305-0D0C-4A68-9B88-317B4CCAA71F.png澳门葡京备用网址 21279A002B-9F7F-4D50-BE15-D25E4253E611.png澳门葡京备用网址 2208031AF2-5719-442A-B7AF-35C6CBCFF8E3.png![Uploading
A5B7E895-5AB7-4D18-9933-7AE1A30148ED_025672.png . .
.]澳门葡京备用网址 23A5B7E895-5AB7-4D18-9933-7AE1A30148ED.png澳门葡京备用网址 24EFABC2EC-BC3E-4E28-8D9E-72D979E3C562.png

代码:./Fabric.framework/run b98094fac7f6c28217956b5e87b1fa047d50758b 2f2f6c3457dce628dc1e655ec872a6c25a4cc9acc5ec5e8e8213da83c81679b2

放到Shell里面:./Fabric.framework/run b98094fac7f6c28217956b5e87b1fa047d50758b 2f2f6c3457dce628dc1e655ec872a6c25a4cc9acc5ec5e8e8213da83c81679b2

接下来就运营:command + B运行;效果图:

澳门葡京备用网址 2561A13809-6185-4843-8B12-E882B2E61AD7.png

出现那一个荒唐的由来:是因为尚未检查实验到Crashlytics安装的库;管理措施是:实行pod安装;在profile文件中打开增添如下2项:

 pod 'Fabric' pod 'Crashlytics'

累加代码:

#import "AppDelegate.h"#import <Fabric/Fabric.h>#import <Crashlytics/Crashlytics.h>@interface AppDelegate ()@end@implementation AppDelegate- application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [Fabric with:@[[Crashlytics class]]]; [Crashlytics sharedInstance].debugMode = YES; return YES;}

完了之后运维:command + B效果图:

澳门葡京备用网址 2639690750-5F86-4E22-98D0-A821A663890C.png

那般就顺理成章了,如果有崩溃消息就能够通过邮件的款式发送到你邮箱。

澳门葡京备用网址 275D8AA480-0B68-4C38-B82F-9ACC35910780.png

7B659036-2E7C-472A-9F51-56C0B2823FB7.png

3、 绘制四变形

// MARK: 绘制四变形
func drawRect(rect: CGRect,context:CGContext) -> Void {
    // 设置绘制的颜色
    UIColor.red.set()
    // 设置宽度
    context.setLineWidth(5)
    /**
     设置绘制四边形的大小,通过控制长和宽绘制长方形和正方形

     @ x : 四边形的起点X轴的位置。
     @ y : 四边形的起点Y轴的位置。
     @ width : 绘制四边形的宽度。
     @ height : 绘制四边形的高度。

     注意: width = height 绘制的是正方形
     */
    context.addRect(CGRect.init(x: 60, y: 20, width: 160, height: 160))
    // 必和路径
    context.strokePath()
}

有其余问题或建议请登时issues me,以便本身能越来越快的进行翻新修复。

3.导航的SDK已经下载完毕

意义图如下:

澳门葡京备用网址 28

E3722BA7-B7CA-4C5D-BD6C-BF42BE4DB786.png

澳门葡京备用网址 29

46E8A830-2248-4F21-A539-DB2FB02C4E0B.png

 演示SDK版本是V2.0.6 

4、绘制多点之间的连线

// MAKR: 绘制多点之间的连线
func drawLines(rect: CGRect,context:CGContext) -> Void {
    // 设置绘制的颜色
    UIColor.red.set()
    // 设置宽度
    context.setLineWidth(5)
    /**
     绘制各点之间的线段

     @ between : 存放的点的数组。
     */
    context.addLines(between: [CGPoint.init(x: 10, y: 50),CGPoint.init(x: 20, y: 30),CGPoint.init(x: 100, y: 150),CGPoint.init(x: 200, y: 20),CGPoint.init(x: 250, y: 70)])
    // 必和路径
    context.strokePath()
}

4.重复再次回到
http://lbsyun.baidu.com
选拔申请密匙->成立应用

作用图如下:

澳门葡京备用网址 30

B15F9520-C2CE-4A94-88FB-B8747911ED39.png

55033B3A-1914-4B1D-8C1A-0947CD2DB557.png

5、绘制圆弧

// MARK: 绘制圆弧
func drawArc(rect: CGRect,context:CGContext) -> Void {
    // 设置绘制的颜色
    UIColor.red.set()
    // 设置宽度
    context.setLineWidth(5)
    /**
     绘制圆弧

     @center : 圆弧的中心点。
     @radius : 圆弧的半径。
     @startAngle : 圆弧开始的角度。
     @endAngle : 圆弧结束的角度。
     @clockwise: 绘制圆弧的方向。true为顺时针,false为逆时针。

     // 例子
     context.addArc(center: CGPoint.init(x: rect.size.width * 0.5, y: rect.size.height * 0.5), radius: 80, startAngle: 0, endAngle: .pi * 2, clockwise: true)
     */
    // 移动起始点
    context.move(to: CGPoint.init(x: 100, y: 19))
    /**
     有两个切点和半径绘制圆弧

     @tangent1End : 切点一。
     @tangent2End : 切点二。
     @radius : 圆弧的半径。
     */
    context.addArc(tangent1End: CGPoint.init(x: 100, y: 200), tangent2End: CGPoint.init(x: 200, y: 100), radius: 80)
    // 闭合路径
    context.strokePath()
}

BD958661-C4F9-44AB-A46E-273BA1457B2D.png

功能图如下:

澳门葡京备用网址 31

7DF988D6-4C69-4BD6-A849-44678DB42DF0.png

澳门葡京备用网址 32

BF7AABAD-503E-4E2D-8859-37223F7EDFE3.png

40BCFEA6-E310-429C-9808-2E5FE646F0A0.png

6、路线绘制的填写

// MARK: 路径绘制的填充
func drawFillPath(rect: CGRect,context:CGContext) -> Void {
    // 设置绘制的颜色
    UIColor.red.set()
    // 设置宽度
    context.setLineWidth(5)
    // 绘制四边形
    context.addRect(CGRect.init(x: 50, y: 50, width: 150, height: 100))
    /**
     填充路径

     CGPathFillRule 的参数有两个:

     @.evenOdd
     @.winding
     */
    context.fillPath(using: .winding)
    context.strokePath()
}

5.提交完毕后是如此的

7、裁剪绘制区域为可绘制的区域

// MARK: 裁剪绘制区域为可绘制的区域
func drawClip(rect: CGRect,context:CGContext) -> Void {
    // 设置绘制的颜色
    UIColor.red.set()
    // 设置宽度
    context.setLineWidth(5)
    // 设置裁剪后可绘制的区域
    context.clip(to: CGRect.init(x: 40, y: 40, width: 60, height: 60))
    /**
     裁剪绘制的图形

     1、裁剪所有的区域为可绘制区域。
     context.clip()

     2、多区域裁剪
     context.clip(to: [CGRect.init(x: 40, y: 40, width: 30, height: 30),CGRect.init(x: 100, y: 40, width: 100, height: 100),CGRect.init(x: 40, y: 120, width: 40, height: 40)])

     3、单区域裁剪
     context.clip(to: CGRect.init(x: 40, y: 40, width: 60, height: 60))

     */
    context.addRect(CGRect.init(x: 50, y: 50, width: 150, height: 100))
    context.strokePath()
}

BF2221B5-8E75-4B10-B1C0-523608269D1B.png

功能如下:

澳门葡京备用网址 33

57E01384-8C93-4103-A1B7-8B0BE0DEB06F.png

澳门葡京备用网址 34

B94F12EB-3158-44B0-8F3F-8EC18B565105.png

6.好了以上申请Key已经成功了,打开你的Xcode吧 创立你的IOS应用吧

澳门葡京备用网址,8、设置填充区域

// MARK: 设置填充区域
func drawFill(rect: CGRect,context:CGContext) -> Void {
    // 设置绘制的颜色
    UIColor.red.set()
    // 设置宽度
    context.setLineWidth(5)
    // 绘制四边形
    context.addRect(CGRect.init(x: 50, y: 50, width: 150, height: 100))
    /**
     区域填充

     1、指定单区域的填充
     context.fill(CGRect.init(x: 40, y: 40, width: 30, height: 30))

     2、多区域的填充
     context.fill([CGRect.init(x: 40, y: 40, width: 30, height: 30),CGRect.init(x: 100, y: 40, width: 100, height: 100),CGRect.init(x: 40, y: 120, width: 40, height: 40)])

     */
    context.fill([CGRect.init(x: 40, y: 40, width: 30, height: 30),CGRect.init(x: 100, y: 40, width: 100, height: 100),CGRect.init(x: 40, y: 120, width: 40, height: 40)])
    // 闭合路径绘制图形
    context.strokePath()
}
------------------------这里是分割线--------------------------------
功效如图:

澳门葡京备用网址 35

EF159CD3-D8B9-43E4-A8E1-08356FF144A9.png

7.先做个简单的起源和终点的分界面 如下图:

9、绘制两点时期的连线

// MARK:绘制两点之间的连线
func drawStrokeLineSegments(rect: CGRect,context:CGContext) -> Void {
    // 设置绘制的颜色
    UIColor.red.set()
    // 设置宽度
    context.setLineWidth(5)

    /**
     绘制两点之间的线段

     @between: 是要绘制点的数组集合。
     注意: 如果 between 里面的点的个数是偶数,那就是每两点之间的连线。如果为奇数,在最后一个点将和(0,0)点组成一组的连线。
     */
    context.strokeLineSegments(between: [CGPoint.init(x: 10, y: 20),CGPoint.init(x: 20, y: 70),CGPoint.init(x: 100, y: 120),CGPoint.init(x: 220, y: 70)])
    // 闭合路径
    context.strokePath()
}

919A40F0-FDE7-4477-982D-5337EEF3556C.png

功用如下图所示:

澳门葡京备用网址 36

0DB5D06E-033B-42B8-9B9E-DCC5D477E3FE.png

8.把下载好的SDK导入到当前Xcode工程下:如下图

10、图像的绘图

// MARK:图像的绘制
func drawImage(rect: CGRect,context:CGContext) -> Void {
    // 设置绘制的颜色
    UIColor.red.set()
    // 设置宽度
    context.setLineWidth(5)
    /**
     图像的绘制

     @image : 是要绘制的图像是一个CGImage对象。
     @in : 绘制图像的大小区域。

     注意:图像绘制出来是倒立的。
     */
    context.draw((UIImage.init(named: "2.jpg")?.cgImage!)!, in:CGRect.init(x: 50, y: 10, width: 200, height: 180))
    // 闭合路径的绘制
    context.strokePath()
}

0B486EE5-4CFF-47AA-B5F1-8AD943B7D4D5.png

效益如下图所示

澳门葡京备用网址 37

ED199368-ED32-4AE2-8A00-4CF827A34295.png

C40F0CFB-66F3-4D09-9BB2-C1AB3E9FC143.png

11、 绘制椭圆

// MARK: 绘制椭圆
func drawEllipse(rect: CGRect,context:CGContext) {
    // 设置绘制的颜色
    UIColor.red.set()
    // 设置宽度
    context.setLineWidth(5)
    context.addEllipse(in: rect)
    context.strokePath()
}

AC033474-2F86-4C49-81F0-FC9D29FB5C56.png

功用如下图:

澳门葡京备用网址 38

00485C5F-1252-48CE-9AD5-F2C7398990DE.png

8.此时大家的目录是那样的

CGContext的一对别样知识点

// MARK: CGContext 的一些参数的介绍
func introduceContext(context:CGContext) -> Void {
    // 获取typeID
    let typeID = CGContext.typeID
    print(typeID)
    // 存储上下文,便于恢复
    context.saveGState()
    // 恢复上下文
    context.restoreGState()
    // 绘制路径的缩放比例
    context.scaleBy(x: 1, y: 1)
    // 绘制图形的旋转 。by 的取值范围是 -1.0~1.0
    context.rotate(by: 1)
    // 获取当前旋转对象
    let ctm = context.ctm
    print(ctm)
    // 更改上当前的旋转对象数据
    context.concatenate(CGAffineTransform.init(rotationAngle: 0.5))
    // 再获取当前旋转对象
    let ctm1 = context.ctm
    print(ctm1)
    // 设置绘制路径的线宽
    context.setLineWidth(6)
    /**
     设置线的头部形状

     可选的参数
     @ butt  和 square 基本一样,属于粗狂的端头。(矩形)
     @ round 半圆形的线头
     @ square
     */
    context.setLineCap(.butt)
    /**
     设置绘制路径拐角处的形状

     可以选择的参数
     @ miter  切角形
     @ round  圆角形
     @ bevel  斜切角形
     */
    context.setLineJoin(.bevel)
    // 设置切角的大小
    context.setMiterLimit(3)
    // 清楚所有绘制的路径图形
    context.closePath()
    // 设置绘制图形的透明度
    context.setAlpha(0.6)
    // 开启新的路径,丢弃老的路径
    context.beginPath()
    // 绘制路径的替换,用于剪切图形
    context.replacePathWithStrokedPath()
    /**
     判断给定的点是否在绘制图形上

     @point: 给定的点
     @mode: 判断点的规则

     CGPathDrawingMode 路径绘制的模型
     @ fill :表示用非零绕数规则。
     @ eoFill: 表示用奇偶规则
     @ stroke :表示填充。
     @ fillStroke :表示描线,填充。
     @ eoFillStroke :表示描线,不是填充。
     */
    let isSave = context.pathContains(CGPoint.init(x: 101, y: 52), mode: .stroke)
    print(isSave)
    // 绘制四边形
    context.addRect(CGRect.init(x: 100, y: 50, width: 150, height: 100))
    // 切除某一区域绘制的图形
    context.clear(CGRect.init(x: 120, y: 50, width: 50, height: 30))
    // 设置画笔的颜色
    UIColor.red.set()
    context.setFillColor(UIColor.red.cgColor)
    // 闭合路径
    context.strokePath()
}

9BDA2491-FD1D-4F63-BDB2-474DA64F4F96.png

9.大家运维下,看看能或不能够运作 如下图:

D08E9DB8-F44C-4A9D-BDAD-DF8EAFDC0C68.png

10.是否一群错误?怎么解决吧,跟自家一步步做(导致错误的是因为ARC的由来,具体笔者也不懂)

7E728EB8-17A5-41B2-B339-671E4C3F8F94.png

11.是还是不是在运行,可以跑起来了?,既然能够跑起来了,那么大家就起来调用SDK导航了
, 首先先做个OC跟斯维夫特桥接库(怎么着桥接 OC跟swift 这些百度吧 非常多了
不一一介绍了),
未来大家的目录是那样的,运营一下,是还是不是一致可以运作,借使得以证实你步骤对了

#import "BNRoutePlanModel.h"
#import "BNCoreServices.h" 

7112CBC2-4F65-48C1-A00C-2BA4E2FAC091.png

12.好了,我们在新建一个BaiduNavViewController.swift(来看看大家的布局)须要贯彻百度导航的协商
如下图:

import UIKit

class BaiduNavViewController: UIViewController, BNNaviUIManagerDelegate,BNNaviRoutePlanDelegate{

    var Begin_longitude:Double=0.0  //初始点X
    var Begin_latitude:Double=0.0   //初始点Y

    private var  longitude=CLLocationDegrees()  //初始点经度
    private var latitude=CLLocationDegrees()     //初始点纬度
    override func viewDidLoad() {
        super.viewDidLoad()
        longitude = Begin_longitude   //起点经度
        latitude =  Begin_latitude    //起点纬度
    }
    //算路回调成功
    func routePlanDidFinished(userInfo: [NSObject : AnyObject]!) {
    }
    //算路回调失败
    func routePlanDidFailedWithError(error: NSError!, andUserInfo userInfo: [NSObject : AnyObject]!) {
    }
    //算路取消回调
    func routePlanDidUserCanceled(userInfo: [NSObject : AnyObject]!) {
    }
    //退出导航
    func onExitNaviUI(extraInfo: [NSObject : AnyObject]!) {
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

350EECB5-07C6-404F-8E1C-0C1795A5D1E0.png

13.周转,是还是不是从没有过出错,假设没出错,继续跟上(在走访大家的代码已经改为这样了)

var services =  BNCoreServices.GetInstance()   //InitSDK
let NAVI_APP_KEY = "RbeSg6mnC784wVOfzI6WDtXj"

  //初始化导航SDK
        services.initServices(NAVI_APP_KEY)
        services.startServicesAsyn({ () -> Void in
            print("导航初始化成功")
            }) { () -> Void in
                print("导航初始化失败")
        }

86C84E0A-8C03-4DC3-A033-44D1A2031922.png

import UIKit

class BaiduNavViewController: UIViewController, BNNaviUIManagerDelegate,BNNaviRoutePlanDelegate{

    var Begin_longitude:Double=0.0  //初始点X 经度
    var Begin_latitude:Double=0.0   //初始点Y 纬度

    var End_longitude:Double=0.0  //终点X 经度
    var End_latitude:Double=0.0   //终点Y 纬度

    override func viewDidLoad() {
        super.viewDidLoad()

        checkServicesInited(Begin_longitude,latitude: Begin_latitude,CurrentaddressX: End_longitude,CurrentaddressY: End_latitude)

    }

    //检查引擎是否初始化完成
    func checkServicesInited(longitude:Double ,latitude:Double ,CurrentaddressX:Double ,CurrentaddressY:Double){
        services  = BNCoreServices.GetInstance()
        if(!services.isServicesInited()){    //检查引擎是否初始化完成
            print("引擎尚未初始化完成,稍后再试")
        }else{
            startNav(longitude,latitude: latitude,CurrentaddressX: CurrentaddressX,CurrentaddressY: CurrentaddressY)    //启动导航
        }
    }
    func startNav(longitude:Double ,latitude:Double,CurrentaddressX:Double ,CurrentaddressY:Double ){
        let nodesArray:NSMutableArray =  NSMutableArray(capacity: 2)
        //起点 传入的是原始的经纬度坐标,若使用的是百度地图坐标,可以使用BNTools类进行坐标转化
        let startNode:BNRoutePlanNode = BNRoutePlanNode()
        startNode.pos = BNPosition()
        //这里获取到当前的位置的经度纬度就可以了
        startNode.pos.x = longitude//经度
        startNode.pos.y = latitude   //纬度
        startNode.pos.eType = BNCoordinate_BaiduMapSDK
        nodesArray.addObject(startNode)
        //终点
        let  endNode:BNRoutePlanNode = BNRoutePlanNode()
        endNode.pos = BNPosition()
        endNode.pos.x = CurrentaddressX //经度
        endNode.pos.y = CurrentaddressY  //纬度
        endNode.pos.eType = BNCoordinate_BaiduMapSDK
        nodesArray.addObject(endNode)
        let GONav = BNCoreServices.RoutePlanService()
        GONav.startNaviRoutePlan(BNRoutePlanMode_Highway, naviNodes: nodesArray as [AnyObject], time: nil, delegete: self, userInfo: nil   )
    } 
    //算路回调成功
    func routePlanDidFinished(userInfo: [NSObject : AnyObject]!) {
        //路径规划成功,开始导航
        let uiservice =  BNCoreServices.UIService()
        uiservice.showNaviUI(BN_NaviTypeReal, delegete: self, isNeedLandscape: true)
    }
    //算路回调失败
    func routePlanDidFailedWithError(error: NSError!, andUserInfo userInfo: [NSObject : AnyObject]!) {
        if (error.code == 100) {
            print("获取地理位置失败")
        }
        else if (error.code == 102)
        {
            print("定位服务未开启")
        }
    }
    //算路取消回调
    func routePlanDidUserCanceled(userInfo: [NSObject : AnyObject]!) {

    }
    //退出导航
    func onExitNaviUI(extraInfo: [NSObject : AnyObject]!) {

    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

424A21B0-904F-408F-A163-10531CD248F5.png

D0D79218-C7BD-4AD5-BEC3-9D1671E6B651.png

14.我们运转…一群错误 100两个(什么情形坑作者吧吧,别急,慢慢来)

349B47F5-38EE-4391-AC47-9C04D72F617C.png

15.上马消除本人有意留下来最后的谬误吧(其实是一伊始忘记做非常步骤了…)

43BC4AFF-B225-41DE-A5DE-2DD5F72A570B.png

16.编译,是还是不是没有错误了,基本上大家的次第大概完毕了,可是编写翻译完程序崩溃了..(别急还应该有步骤)

72F6A0E6-5D81-46BD-88F2-A04B2DA59542.png

17.还或然有个最最重视

CE4226F7-B3CB-4EE7-AD64-BE72D316296F.png

18.好了 运维程序吗,没有错误了,那么大家开始来运作导航了
率先先加多多少个navigationController 来走访我们Main.storyboard 的界面

2B2B39C4-AAB2-4A3C-B683-136A25E89DC6.png

19.在看看ViewController.swift 代码

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var Begin_longitude: UITextField!

    @IBOutlet weak var Begin_latitude: UITextField!

    @IBOutlet weak var End_longitude: UITextField!

    @IBOutlet weak var End_latitude: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()

        Begin_longitude.text=113.3684990000.description
        Begin_latitude.text=23.1304880000.description

        End_longitude.text=114.0661120000.description
        End_latitude.text=22.5485150000.description

    }

    @IBAction func goNav(sender: AnyObject) {
        let  baidunav = BaiduNavViewController()

          baidunav.Begin_longitude=Double(Begin_longitude.text!)!  //初始点X 经度
         baidunav.Begin_latitude=Double(Begin_latitude.text!)!   //初始点Y 纬度

          baidunav.End_longitude=Double(End_longitude.text!)!   //终点X 经度
         baidunav.End_latitude=Double(End_latitude.text!)!  //终点Y 纬度


        self.navigationController?.pushViewController(baidunav, animated: true)
    }


    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()

    }


}

393E6FCA-5B05-47DD-909C-8605BE4B7310.png

20.好了,大家运行吧 已经到位了
(注:经度纬度能够在http://www.gpsspg.com/maps.htm
里面获取,假若做得灵活点能够经过定位来获取数据),大家来拜见大家做出来的收获吧

9F02B24A-9596-4436-A704-C20702250E5E.png

TTS授权是语音成效如必要请到http://lbsyun.baidu.com/index.php?title=ios-navsdk/guide/voice
申请授权

CB7845D4-D8EF-4413-B24B-87FE5454D274.png

37420455-E72E-4DB2-919B-FCCF65031AA8.png

3E0E3C6D-C566-4357-92D8-992EBDDC8AC4.png

终于写完了…马到成功,如有什么创新,请在留言处留言。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website