IOS折线图二

上周把项目的折线图给做了下,今天想着把它完善完善,自己设置了不同的数据源来测试,哈哈,还真遇到问题了, 就是给图表设置折点数为0时,视图显示的还是原来的,由于数据为空,应该将其设置为空,所以想着怎么把ScrollView中的子视图情况。由于标题和折点值是用Label,可以删除View。但画的线和点是通过贝塞尔曲线添加到图层上了,还要把子视图的layer删掉。可是问题来了, 先上删除代码:

int count = [self.layer.sublayers count];
    for (int i = 0; i<count; i++) {
        [self.layer.sublayers[i] removeFromSuperlayer];
    }

但结果并不理想:

当多次点击日按钮时,会慢慢的删除,感觉蛮怪的,觉得可苦逼了。后来问了下oliver,大神就是大神,一会就搞出原因了。原来每次删除一个父视图之后就会时父视图的子图层个数-1,而如果每次都是用i索引删除就会遗漏一些子图层,修改之后就完美了。

int count = [self.layer.sublayers count];
    for (int i = 0; i<count; i++) {
        [self.layer.sublayers[0] removeFromSuperlayer];
    }

还有就是之前博客也提到过的for in 和for(int i=0;......)的区别。http://www.cnblogs.com/5ishare/p/4372398.html

我用下面的代码遍历时也是提示错误:was mutated while being enumerated 遍历的时候不能删除

 for (CALayer *layer in self.layer.sublayers) {
        [layer removeFromSuperlayer];
    }

正确的代码更新在折线图那篇博客中了

时间: 2024-08-02 04:10:55

IOS折线图二的相关文章

IOS折线图

做项目要统计商品的销售情况,美工那边给了效果图,自己就按照效果图自定义了一个ScrollView.整体效果不错,在做的过程中遇到的问题也记录一下. 现在这个还有许多优化的地方: 1.一个表中只能画一个折线 2.目前的要求最小值为0,没考虑负数的最小值 // // LineChartView.h // chart // // Created by City--Online on 15/9/17. // Copyright © 2015年 City--Online. All rights reser

android绘画折线图一

最近需要实现用android来画折线图,所以百度了一下,发现确实很多,也很乱,现在整理两种方法(第二种方法在[android绘画折线图二]中实现),仅供大家参考,一起学习研究. 第一种使用ChartFactory.getLineChartIntent()方法获取,这种方法首先需要一个achartengine-1.0.0.jar(项目中有),然后建立一个简单的android项目 项目中所需要导入的包有: import java.util.ArrayList; import java.util.Ha

iOS:使用贝塞尔曲线绘制图表(折线图、柱状图、饼状图)

1.介绍: UIBezierPath :画贝塞尔曲线的path类 UIBezierPath定义 : 贝赛尔曲线的每一个顶点都有两个控制点,用于控制在该顶点两侧的曲线的弧度. 曲线的定义有四个点:起始点.终止点(也称锚点)以及两个相互分离的中间点. 滑动两个中间点,贝塞尔曲线的形状会发生变化. UIBezierPath :对象是CGPathRef数据类型的封装,可以方便的让我们画出 矩形 . 椭圆 或者 直线和曲线的组合形状 初始化方法: + (instancetype)bezierPath; /

iOS 动画绘制线条颜色渐变的折线图

效果图 .................... 概述 现状 折线图的应用比较广泛,为了增强用户体验,很多应用中都嵌入了折线图.折线图可以更加直观的表示数据的变化.网络上有很多绘制折线图的demo,有的也使用了动画,但是线条颜色渐变的折线图的demo少之又少,甚至可以说没有.该Blog阐述了动画绘制线条颜色渐变的折线图的实现方案,以及折线图线条颜色渐变的实现原理,并附以完整的示例. 成果 本人已将折线图封装到了一个UIView子类中,并提供了相应的接口.该自定义折线图视图,基本上可以适用于大部分

IOS使用Core-Plot画折线图

关于Core-Plot的配置,大家可以参考我的上一篇博客:http://1.wildcat.sinaapp.com/?p=99 版权所有,转载请注明原文转自:http://blog.csdn.net/wildcatlele/article/details/25483923 大家可以到:http://1.wildcat.sinaapp.com/?p=102观看本篇博客更友好的排版格式 或者你英语好也可以参考github上的wiki介绍:https://code.google.com/p/core-

深入浅出ECharts系列 (二) 折线图

深入浅出ECharts系列(二) 目标 本次教程的目标是实现“折线图堆叠”折线,实现结果如图: 2. 准备工作 a)         首先下载ECharts插件,你可以根据自己的实际需求选择你想要下载的版本,也可以自己定制相应功能的版本,下面附上插件的下载地址: http://echarts.baidu.com/download.html 我们下载完整版为大家进行演示. 3. 正式开始 首先,我新建了一个MVC4项目,将下载的文件放到对应的位置: 然后新建一个控制器和对应的视图,添加对文件的引用

MPAndroidChart开源图表库(二)之折线图

承接上一篇文章,请参考 http://blog.csdn.net/shineflowers/article/details/44701645 1. 将mpandroidchartlibrary-2-0-8.jar包copy到项目的libs中 2. 定义xml文件 3.  主要Java逻辑代码如下,注释已经都添加上了. <span style="font-family:SimSun;font-size:14px;">package com.example.mpandroidl

VS2010 使用TeeChart画图控件 - 之二 - 绘制图形(折线图,柱状图)

1.前期准备 详细可见VS2010 使用TeeChart画图控件 - 之中的一个 控件和类的导入 1. 1 加入TeeChart控件,给控件加入变量m_TeeChart 加入TeeChart控件,右击控件,选择加入变量,vs会自己主动给我们引入CTchart1这个类,可是仅仅有这个类,我们是远远不够的,须要加入teechart其它相关的类,加入方法在之前已经讲过,不再反复. 1.2. 引入必要的头文件 事实上之前的方法比較麻烦,更简单就是通过类向导,导入类型库的类 如图进入类向导,选择加入类bu

iOS 中各种折线.曲线.图形绘制方法集锦(折线图.走势图.柱状图.动态曲线图.形状图.划线图)

前言 具体实现如下: 目录 前言 第一 折线图实现 .1) 自定义视图实现 .2)关键技术实现 .3) 方法调用 .4) 效果展示 第二 走势曲线图实现 .1) 导入DJChart第三方库 .2)横竖轴参数设置 .3) 方法调用 .4) 效果展示 第三 画线图实现 .1) 导入ZXQuartz第三方库 .2) 自定义视图,画各种图形 .3) 方法调用 .4) 效果展示 第四 柱状图实现 .1) 导入ZXQuartz第三方库 .2)横竖轴参数设置 .3) 方法调用 .4) 效果展示 第五 各式图形