基于iOS的APP“好妈妈”开发日志十七——实现ios图表(chart)的引用,以及每次返回界面都刷新图表

32 篇文章 0 订阅
27 篇文章 0 订阅

基于iOS的APP“好妈妈”开发日志十七——实现ios图表(chart)的引用,以及每次返回界面都刷新图表

实现效果图

在这里插入图片描述

pageview+AAChartModel / AAChartKit-Swift

AAChartModel / AAChartKit-Swift地址

实现代码

大部分对象的定义都在外部定义完成,不能设为局部变量,不然函数与函数之间无法调用

	@IBOutlet weak var tipsView: UIView!
    @IBOutlet weak var titleView: DNSPageTitleView!
    
    @IBOutlet weak var contentView: DNSPageContentView!
    
    var text : String?
    var dateStr: String = ""
    var getCycle: [Double] = []
    var getDays: [Double] = []
    var getMenstrualArray: [String] = []
    var showCycle: String = ""
    var showDays: String = ""
    var cyc: Int = 0
    var day: Int = 0
    let controller2 = UIViewController()
    open var chartModel: AAChartModel?
    open var aaChartView: AAChartView?

创建图表只有一点需要提一下,就是创建图表最好,把配置视图模型AAChartModel放在一个func里,这样就可以在viewWillAppear中实现反复刷新,不然调用self.aaChartView?.aa_refreshChartWholeContentWithChartModel(self.chartModel!)这个函数有时候是刷新不了数据的。

在添加图表试图的时候不要第一个添加,会报错,需要这样:

let subLabel = UILabel()
                subLabel.frame = CGRect(x: 20,
                                        y:0,
                                        width: 5,
                                        height: 5)
                subLabel.text = "不要将 AAChartView 作为第一个子视图添加到 ViewController 上,否则会有 bug,不信你试试注释掉我"
                self.controller2.view.addSubview(subLabel)
                //先添加一个无用视图
                self.controller2.view.addSubview(self.aaChartView!)
                //再添加图表

pageview是引用了DNSPageView

link:DNSPageView

文档是这样写的

// 创建每一页对应的controller
let childViewControllers: [UIViewController] = titles.map { _ -> UIViewController in
    let controller = UIViewController()
    addChild(controller)
    return controller
}

但由于对ios底层的不够了解,导致不知道如何去创建每一个controller
于是用了自己的方法

// 创建每一页对应的controller
        let controller1 = UIViewController()
        controller1.view.backgroundColor = UIColor.white
        controller1.view.layer.cornerRadius = 15
        addChildViewController(controller1)
        
        //此处由于要在实现图表的方法中调用controller2,所以将它的定义放在了外面
        controller2.view.backgroundColor = UIColor.white
        controller2.view.layer.cornerRadius = 15
        
        self.setUpAAChartView()//调用实现图表方法

        addChildViewController(controller2)
        
        let controller3 = UIViewController()
        controller3.view.backgroundColor = UIColor.white
        controller3.view.layer.cornerRadius = 15
        addChildViewController(controller3)
        
        let childViewControllers: [UIViewController] = [controller1,controller2,controller3]

此处就完成了各个controller的创建

luhh 今早194day?

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值