码迷,mamicode.com
首页 > 编程语言 > 详细

用swift开发仪表盘控件(一)

时间:2014-10-28 17:58:37      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:swift   开发者   控件   

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

bubuko.com,布布扣

瞬间就被感动了,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个图形,包括在你的项目中就行了。

一、控件的使用

控件使用的效果:

bubuko.com,布布扣

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

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

bubuko.com,布布扣

打开XCODE 6.1 下面的界面,添加即可。

bubuko.com,布布扣

下面谈谈,如何在项目中使用这个控件,代码说话:

@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开发仪表盘控件(一)

标签:swift   开发者   控件   

原文地址:http://blog.csdn.net/ynmaoyong/article/details/40541341

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!