苹果swift刚刚推出不久,接触到这个语言是一个偶然的机会,无聊之余随便看了下它的语法:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveW5tYW95b25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

瞬间就被感动了,switch 中竟然大胆淘汰了break,全然是反人类的做法。其它语言没这么大胆和聪明,基本上switch, 都要搭配一大堆break(没有开发人员考虑过繁琐性)。由于99%的时候要使用break,所以苹果干脆就省略了。当然假设你要穿越的话能够用fallthrough。swift的长处还许多此处省略1000字......

能够在以下的地址下载控件(毫无保留,随便使用)

http://download.csdn.net/detail/ynmaoyong/8091225

言归正传,以下介绍一下用swift开发的控件“MeterSwift”仪表控件。这个控件执行于IOS7+。有以下几个特点:

1、表盘尺寸灵活,能够在100×100 至 350×350的条件下使用。

2、刻度灵活能够自己定义显示最大值、分度值。

3、改动灵活,替换表盘png、表针png全然就是你自己的控件(不必有罪恶感,我的图形也是网上down的)。

4、使用方便,就一个文件,2个图形。包含在你的项目中即可了。

一、控件的使用

控件使用的效果:

拖动slider就发现表针在转动。

本控件使用了以下的2个库:

打开XCODE 6.1 以下的界面。加入就可以。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveW5tYW95b25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

以下谈谈。怎样在项目中使用这个控件。代码说话:

@IBAction func sliderChange(sender: UISlider){

//设置显示值

panel.setCurrGaugeValue(CGFloat(sender.value),animation: false)

disLable.text = "速度:\(Int(sender.value))km/h"

}

override func viewDidLoad() {

super.viewDidLoad()

//初始化绘制范围參数

let frame = CGRectMake(10, 10, 151, 151)

//初始化控件

panel = GaugePanel(frame: frame)

self.slider.maximumValue = MAXVALUE

//self.view.addSubview(panel)

containView.addSubview(panel)

}

1.  首先在界面上放一个view容器。

2.  初始化控件在容器内的绘制范围。

3.  设置显示值。

以下解释下在Gauge.swift文件里的參数配置

//最大偏转角度

letMAXOFFSETANGLE : Float = 120.0

//初始化指针偏移量

letPOINTEROFFSET : Float = 90.0

//最大显示数值

letMAXVALUE : Float = 200.0

//大格子间的分度数目

letCELLMARKNUM : Int = 5

//大格子数目

letCELLNUM : Int = 5

//表盘中心显示的文字

letGAUGESTRING : String = "单位:Km/h"

//缺省的表盘尺寸(正方形)

letDEFLUATSIZE : Int =  300

加载表盘和指针png

self.pointer = UIImageView(image: UIImage(named:"pointer2.png"))

self.gaugeView = UIImage(named: "gaugeback.png")

用swift开发仪表盘控件(一)的更多相关文章

  1. 用swift开发仪表盘控件(二)

    二.代码分析 这个控件本质就是从UIView继承的一个类而已.所以整个代码事实上就是一个定制的UIView类. 依据UIView的规则进行例如以下初始化: required init(coder aD ...

  2. .Net语言 APP开发平台——Smobiler学习日志:如何在手机上开发仪表盘控件

    最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的"S ...

  3. 用C#开发ActiveX控件,并使用web调用

    入职差不多两个月了,由学生慢慢向职场人做转变,也慢慢的积累知识,不断的更新自己.最近的一个项目里边,涉及到的一些问题,因为SDK提供的只是winform才能使用了,但是有需求咱们必须得完成啊,所以涉及 ...

  4. ATL开发 ActiveX控件的 inf文件模板

    ATL开发 ActiveX控件的 inf文件模板    

  5. 使用C#开发ActiveX控件(新)

    前言 ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力.通常ActiveX控件都是 ...

  6. IOS学习资源收集--开发UI控件相关

    收集的一些本人了解过的iOS开发UI控件相关的代码资源(本文持续补充更新) 内容大纲: 1.本人在github上也上传了我分装好的一些可重复利用的UI控件 2.计时相关的自定义UILabel控件 正文 ...

  7. [转]C#开发ActiveX控件,.NET开发OCX控件案例

    引自:百度   http://hi.baidu.com/yanzuoguang/blog/item/fe11974edf52873aaec3ab42.html 讲下什么是ActiveX控件,到底有什么 ...

  8. 使用C#开发ActiveX控件(新) 转 http://www.cnblogs.com/yilin/p/csharp-activex.html

    前言 ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力.通常ActiveX控件都是 ...

  9. [转] 使用C#开发ActiveX控件

    双魂人生 原文 使用C#开发ActiveX控件 ActiveX 是一个开放的集成平台,为开发人员.用户和 Web生产商提供了一个快速而简便的在 Internet 和 Intranet 创建程序集成和内 ...

随机推荐

  1. 奇妙的CSS之CSS3新特性总结

    随着CSS3标准的发布,越来越多的浏览器开始支持最新的CSS标准,虽然还有些新特性支持的不够完美,但相信未来的浏览器一定会完全支持CSS3的,毕竟这代表着大趋势!下面l列出来一些CSS3中出现的新特性 ...

  2. Codeforces 963A Alternating Sum(等比数列求和+逆元+快速幂)

    题目链接:http://codeforces.com/problemset/problem/963/A 题目大意:就是给了你n,a,b和一段长度为k的只有'+'和‘-’字符串,保证n+1被k整除,让你 ...

  3. Luogu P1750 【出栈序列】

    一眼(万年)贪心minn设小调不出来祭 首先要保证更靠前的输出更小那么容易想到,对于之后可能入栈的元素(即栈的剩余空间仍能装下的所有元素),我们可以取其中的最小值minn,和栈顶元素$top$比较,如 ...

  4. 动态规划面试题基础合集1--数学三角形,LIS , LCS, CSD

    动态规划的一般思路是分为四步,即:寻找最优子结构.递归定义最优子结构.自底向上求解最优子结构和构造最优解. 接下来我列举出几个常见的动态规划面试题进行说明. (1)数学三角形:比较简单,直接贴一个我看 ...

  5. 20165333 学习基础和C语言学习基础

    说实话,我并没有什么技能比90%以上的人更好,非要拿一个出来的话,篮球勉强好一点吧.最初接触篮球是小学的时候跟着哥哥看他打球,哥哥的球技在同龄人中算是好的,每次看他各种突破过人,我都觉得特别潇洒帅气, ...

  6. 2017冬季24集训模拟题-24星球的末日(Floyd)

    24 星球的末日[问题描述]24 星球的世界末日就要到了 , 可是诺亚方舟还没有制造完成 . 为了制造诺亚方舟这个星球上的所有国家都站在统一战线 . 现在一共有n个国家 , 一个国家到另一个国家都有一 ...

  7. 易普优APS签约本田汽车零部件八千代工业集团!

    2018年7月,易普优APS与八千代工业株式会社汽车零部件供应商正式签约,易普优APS在汽车零部件与整车行业的针对性解决方案的又一次得到客户高度认可与青睐! 日本八千代工业株式会社成立于1953年,总 ...

  8. JS日期、时间 格式化转换方法

    Date.prototype.format = function(fmt) { var o = { "M+" : this.getMonth()+1, //月份 "d+& ...

  9. thinkphp中如何是实现多表查询

    多表查询经常使用到,但如何在thinkphp中实现多表查询呢,其实有三种方法. 1 2 3 4 5 6 7 8 9 10 11 12 // 1.原生查询示例: $Model = new Model() ...

  10. java 里的内部类

    java里的内部类通常能帮我们隐藏一些具体实现,体现良好的封装效果. 内部类又分几种: 1.普通内部类 2.局部内部类 3.匿名内部类 4.静态内部类 普通内部类 先来看第一种普通的内部类,这种内部类 ...