Swift基础之设计折线坐标图
最近添加了折线视图的样式,所以在这里用Swift语言重新再使用设计一下
首先设置纵坐标的数值是:体重
//体重
let weightLabel = UILabel.init(frame: CGRectMake(0, 10, 60, 30));
weightLabel.text = "体重(kg)";
weightLabel.textColor = UIColor.lightGrayColor();
weightLabel.font = UIFont.systemFontOfSize(12);
weightLabel.textAlignment = NSTextAlignment.Center;
weightLabel.adjustsFontSizeToFitWidth = true;
weightV.addSubview(weightLabel);
然后设计纵向坐标设计(一定要注意设计的顺序结构,否则坐标位置容易出问题)
//纵向
let vierArray:NSArray = ["90","80","70","60","50","0"];
for i:Int in 0 ..< vierArray.count {
//纵坐标值
let vLabel = UILabel.init(frame: CGRectMake(0, 40+CGFloat(i)*30, 30, 30));
vLabel.text = vierArray[i] as? String;
vLabel.font = UIFont.systemFontOfSize(11);
vLabel.textAlignment = NSTextAlignment.Center;
vLabel.adjustsFontSizeToFitWidth = true;
vLabel.textColor = UIColor.lightGrayColor();
weightV.addSubview(vLabel);
//横坐标线
let vLineV = UIView.init(frame: CGRectMake(30, 55+30*CGFloat(i), 260, 1));
if i==vierArray.count-1 {
vLineV.backgroundColor = UIColor.blackColor();
}
else
{
vLineV.backgroundColor = UIColor.lightGrayColor();
}
weightV.addSubview(vLineV);
}
设置横向
//横向
let hierArray:NSArray = ["0","1","2","3","4","5","6","7","8"];
for i:Int in 0 ..< hierArray.count {
//横坐标值
let hLabel = UILabel.init(frame: CGRectMake(30*CGFloat(i), 40+30*CGFloat(vierArray.count)-15, 30, 30));
hLabel.text = hierArray[i] as? String;
hLabel.font = UIFont.systemFontOfSize(11);
hLabel.textAlignment = NSTextAlignment.Right;
hLabel.adjustsFontSizeToFitWidth = true;
hLabel.textColor = UIColor.lightGrayColor();
weightV.addSubview(hLabel);
//纵坐标线
let hLineV = UIView.init(frame: CGRectMake(30+30*CGFloat(i), 40, 1, 30*CGFloat(vierArray.count)-15));
if i==0 {
hLineV.backgroundColor = UIColor.blackColor();
}
else
{
hLineV.backgroundColor = UIColor.lightGrayColor();
}
weightV.addSubview(hLineV);
}
横坐标:年龄
//年龄
let ageLabel = UILabel.init(frame: CGRectMake(260, 40+30*CGFloat(vierArray.count)-15, 60, 30));
ageLabel.text = "年龄(岁)";
ageLabel.textColor = UIColor.lightGrayColor();
ageLabel.font = UIFont.systemFontOfSize(12);
ageLabel.textAlignment = NSTextAlignment.Right;
ageLabel.adjustsFontSizeToFitWidth = true;
weightV.addSubview(ageLabel);
接下来就是折线的显示了
//创建layer设置属性
let layerR = CAShapeLayer.init();
//设置包围的颜色,默认为黑色
layerR.fillColor = UIColor.clearColor().CGColor;
//折线宽度
layerR.lineWidth = 1.0;
//设置折线颜色
layerR.strokeColor = UIColor.blueColor().CGColor;
weightV.layer.addSublayer(layerR);
//创建贝塞尔路径
let pathH = UIBezierPath.init();
//设置起点
pathH.moveToPoint(CGPointMake(30, 100));
//添加坐标点
let xArray:NSArray = [50,70,90,110,130,150,170,190,210,230,250,270];
let yArray:NSArray = [160,180,200,200,150,120,80,100,130,130,180,110];
for i:Int in 0 ..< xArray.count {
pathH.addLineToPoint(CGPointMake((xArray[i] as! CGFloat), (yArray[i] as! CGFloat)));
}
layerR.path = pathH.CGPath;
//创建基础动画,连接个点
let animationN = CABasicAnimation.init(keyPath: "strokeEnd");
//设置时间
animationN.duration = 5;
//添加动画
layerR.addAnimation(animationN, forKey: nil);
效果图如下:
源码下载:http://download.csdn.net/detail/hbblzjy/9651941
Swift基础之设计折线坐标图的更多相关文章
- iOS绘制坐标图,折线图-Swift
坐标图,经常会在各种各样的App中使用,最常用的一种坐标图就是折线图,根据给定的点绘制出对应的坐标图是最基本的需求.由于本人的项目需要使用折线图,第一反应就是搜索已经存在的解决方案,因为这种需求应该很 ...
- iOS Swift 模块练习/swift基础学习
SWIFT项目练习 SWIFT项目练习2 iOS Swift基础知识代码 推荐:Swift学习使用知识代码软件 0.swift中的宏定义(使用方法代替宏) 一.视图 +控件 1.UIImag ...
- 【转】Swift 语言的设计错误
Swift 语言的设计错误 在『编程的智慧』一文中,我分析和肯定了 Swift 语言的 optional type 设计,但这并不等于 Swift 语言的整体设计是完美没有问题的.其实 Swift 1 ...
- swift基础:第六部分:类与对象
http://reactnative.cn/docs/0.24/getting-started.html#content(react Native 开发文档) 互联网这个时代,你松懈一天,就会有很多很 ...
- swift基础:第二部分:函数和闭包
今天本来想利用上午的时间本来打算将swift基础部分学习完的,不巧的是,后台来和我讨论用户评价的接口,讨论过后,商讨出一种可行的方案,十几分钟时间过去了,我拿到将接口介入到已经完成的页面中,完美,终于 ...
- Swift基础语法学习总结(转)
Swift基础语法学习总结 1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...
- Swift基础语法学习总结
Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift ...
- swift -- 基础
swift -- 基础 1.常量和变量 常量: let 变量: var 2.声明常量和变量 常量的声明: let let a = 1 //末尾可以不加分号,等号两边的空格必须对应(同 ...
- Swift基础学习
Swift基础学习 http://c.biancheng.net/cpp/html/2242.html 这个网站最近看了一下,对于基本语法解释概括的相对全面,如同重新练习一遍OC似的,挺全面的,谢谢 ...
随机推荐
- [ZJOI 2015]幻想乡战略游戏
Description 傲娇少女幽香正在玩一个非常有趣的战略类游戏,本来这个游戏的地图其实还不算太大,幽香还能管得过来,但是不知道为什么现在的网游厂商把游戏的地图越做越大,以至于幽香一眼根本看不过来, ...
- [ZJOI2013]丽洁体
题目描述 平时的练习和考试中,我们经常会碰上这样的题:命题人给出一个例句,要我们类比着写句子.这种往往被称为仿写的题,不单单出现在小学生的考试中,也有时会出现在中考中.许多同学都喜欢做这种题,因为较其 ...
- 51nod 1981 如何愉快地与STL玩耍
Description 驴蛋蛋在愉快地与STL玩耍 突然间小A跳了出来对驴蛋蛋说,看你与STL玩的很开心啊,那我给你一个大小为N的vector,这个vector上每个位置上是一个set, 每次我会在闭 ...
- 数论:px+py 不能表示的最大数为pq-p-q的证明
对于互质的两个数p,q,px+py 不能表示的最大数为pq-p-q. 证明: 先证:pq-p-q不能被px+py表示. 假设pq-p-q可以被px+py表示 那么 px+py=pq-p-q ...
- poj 3070 Fibonacci 矩阵快速幂
Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. F ...
- poj2406 连续重复子串
Power Strings Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 41110 Accepted: 17099 D ...
- bzoj1293[SCOI2009]生日礼物 尺取法
1293: [SCOI2009]生日礼物 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2838 Solved: 1547[Submit][Stat ...
- python绘制散点图,柱状图和折线图
示例:散点图 最常见的散点图之一是x-y散点图.下面的代码会大致告诉你一个matplotlib是如何工作的,你会看到如何一点点建立起一个散点图. 我们正在使用点的x和y位置的一些构成数据.运行下面的代 ...
- TensorFlow-Bitcoin-Robot:Tensorflow 比特币交易机器人
简介 一个比特币交易机器人基于 Tensorflow LSTM 模型,仅供娱乐. A Bitcoin trade robot based on Tensorflow LSTM model.Just f ...
- Vue2学习(2)
按键修饰符 还可以自定义按键修饰符别名,通过全局 config.keyCodes 对象设置: // 可以使用 `v-on:keyup.f1` Vue.config.keyCodes.f1 = 112 ...