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

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

大家好,又见面了,我是全栈君。

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

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

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

一、控件的使用

控件使用的效果:

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

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

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

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

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

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

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

@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”)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115309.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • centos7安装python3.8_centos python3安装

    centos7安装python3.8_centos python3安装centos7自带版本是python2.7centos8是自带python3的如果要用的3.0以上的版本需要手动安装,下载地址:https://www.python.org/ftp/python/1、先查看系统python的位置在哪儿whereispythonpython2.7默认安装是在/usr/bin目录中,切换到/usr/bin/cd/usr/bin/llpython*从下面的图中我们可以看到,python指向的是python2,python2指向的是python2.7,因此

  • pycharm如何配置git_网络设备配置基础实训总结

    pycharm如何配置git_网络设备配置基础实训总结PyCharm与Github配置使用总结

  • Webgame 设计与开发之内容简介

    Webgame 设计与开发之内容简介Webgame设计与开发之内容简介内容简介      本书将webgame设计方法,编程方法,设计过程完全的结合起来,详细阐明webgame设计与开发的各个方面。本书首先介绍webgame的市场趋势,以及开发wengame所需要的主要技术,然后分成三大部分:客户端设计,服务端设计,数值设计。最后以一个完整的webgame游戏展现在读者面前。     本书结构紧凑,内容由浅入深,是学习

  • Parallel.ForEach并行异步执行导致程序崩溃[通俗易懂]

    Parallel.ForEach并行异步执行导致程序崩溃[通俗易懂]Parallel.ForEach(memberIds,newParallelOptions{MaxDegreeOfParallelism=3},async(id)=>{awaitTask.Delay(randomr.Next(30,80)*memberIds.IndexOf(id));try{//TODO:实现}catch(Exception){//忽.

  • java获取文件名乱码_java导出文件名中文乱码

    java获取文件名乱码_java导出文件名中文乱码Java读linux系统文件文件名乱码的解决办法1,问题描述web应用想通过Java读取linux系统文件显示到web页面上,结果中文文件名出现乱码?问题场景描述:当用户通过浏览器访问tomcat服务器,请求查看某一路径下文件列表信息,tomcat的web应用调用getFilesByPath(Stringpath)方法读取文件列表信息响应请求,页面中文文件名出现乱码。推荐教程:《java学习》代…

    2022年10月20日
  • gpio引脚介绍 树莓派3b_树莓派3B+ GPIO 入门

    gpio引脚介绍 树莓派3b_树莓派3B+ GPIO 入门GPIO编号方式GPIO(GeneralPurposeInput/Output)的意思就是通用型输入输出,有三种方法可以对RaspberryPi上的IO引脚进行编号:BOARD编号,这是指RaspberryPi针脚接头上的引脚号。BCM编号,这是指BroadcomSOC的通道号码,需使用通道号所对应的树莓派板上的引脚。wringPi编号,wringPi库使用…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号