IOS仿[自选股]项目开发
[自选股]项目架构
此次[自选股]项目独立开发开发采用了软件工程通用的MVC架构模式,将数据(Model)、视图(view)、控制器(Controller)解耦合。三者各自执行各自的任务,其中数据(Model)是用来存储从服务器请求下来的数据,视图(view)HTTP Client示数据。控制器在它们两者直接起到了连接作用。
总的来说MVC的目的是增加代码的重用率,减少数据表达,数据描述和应用操作的耦合度。 同时也使得软件可维护性,可修复性,可扩展性,灵活性以及封装性大大提高。
[自选股]项目实现技术点
此次[自选股]独立开发开主要运用抓包技术结合IOS开发语言来完成的,抓取网络接口和测试网络接口我们使用了Charles/HTTP Client两个工具。
它们方便了我们在开发过程中对数据来源的检查,保证数据可请求下来,以及数据可正常使用。
主要技术还是运用OC语言的UIKit框架来实现项目的整体界面,以及对界面的布局。其中界面搭建UILabel、UIButton占据了大部分内容,界面布局主要将CollectionView和TableView结合起来运用,collectionView里嵌入tableView,tableView里又嵌入UIView。再者在对数据在控制器(Controller)、和视图(view)之间进行事件传递的时候用到了Block语句块来实现,使得代码更直观。
除了主要运用IOS提供的框架之外,还集成了第三方实用框架来实现视图灵活切换,以及社会化分享可将用户想要分享的内容分享到各个微博平台,社交平台。其中股票K线图和资金柱状图用到了OC的底层框架coreGraphics来绘制。
其整个项目的难点在于对Protfolio(自选)、Markets(行情)、以及点击股票进入股票详情界面,这三个模块占据了大部分时间。在对这三部分的数据处理和对tableView分组的单独处理做了许多判断,以至于在最后要将这个app的界面的数据请求和界面贯通的时候回出现许多问题。
然后就是在使用TableView和CollectionView的时候会遇到单元格复用的问题,总结出一下几个几个注意点:
1.分组创建单元格时————》要考虑到单元格的覆用问题,对每组单元格单独创建并设置id.
2.tableView和collectionView的协议方法中做操作时(特殊情况:创建视图(列:创建表头视图)、) 要考虑协议方法是否会多次调用。。。以至于不停的创建视图( 使得原视图被新创建的视图覆盖 )
3.collectionView布局对象来控制布局
4.collectionView单元格复用的问题
1: 首先创建一个类,继承UICollectionViewCell,将你这个TableView在个类的init方法里面去创建,并添加到self.contentView上
2:当数据传过来时复写set方法
- (void)setStockData:(NSDictionary *)stockData {
if (_stockData != stockData) {
_stockDetailpictureData = stockDetailpictureData;
[selfsetNeedsLayout];
}
}
3:再到layoutSubviews方法里填充(或传递数据)
- (void)layoutSubviews {
[superlayoutSubviews];
_detailTableView.stockData =self.stockData;
_detailTableView.code =self.code;
_detailTableView.backgroundColor = [UIColorclearColor];
//在init方法里创建时添加[self.contentViewaddSubview:_detailTableView];
}
最后是对代码的重构,在项目的开发过程不免会发现正在敲的代码与之前敲过的代码实现的功能几乎一样,我们第一反应就应该要想到代码重复利用,所以我们就要对代码进行封装与重构,使得代码更加简介清晰明了,从而使得项目性能也有所提升。
4: 在回到控制器viewDidLoad方法里,注册重用 [self.collectionView registerClass:[MyCollectionViewCell class]forCellWithReuseIdentifier:@"CELL"];
5: 使用 MyCommentsCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CELL" forIndexPath:indexPath];
IOS仿[自选股]项目开发相关推荐
- iOS高级进阶系列之项目开发基础(上)多环境配置,Mach-O与链接器。
前言 最近对项目进行优化,就顺便写一些日常开发中会用到的中高级开发技巧.这篇文章聊一下下面三个内容:多环境配置,Mach-O与链接器,Symbol. 多环境配置 聊到多环境配置,我们先说几个概念 上图 ...
- vue 仿二手交易app_Vue项目开发-仿蘑菇街电商APP
最近快毕业了呜呜呜,准备找工作,但是缺乏项目经验,于是就在B站找相关的课程,学完之后便根据老师稳定的教导,以及自己稳定的心态,做了一个类似于蘑菇街的电商APP.(后端数据接口由老师提供,老师叫code ...
- 仿途牛旅游APP项目开发
用到的库有: android-support-v7-appcompat android-support-v7recyclerview drawee fbcore fresco FruitShop p_ ...
- Android模仿途牛app源码,仿途牛旅游APP项目开发
用到的库有: android-support-v7-appcompat android-support-v7recyclerview drawee fbcore fresco FruitShop p_ ...
- 仿牛客社区项目(第一章)
文章目录 第一章:初始 SpringBoot,开发社区首页 仿牛客社区项目开发首页功能 一. 实体引入 1. User类 2. DiscussPost 类 3. Page类 二. 配置文件 三. da ...
- 最新仿映客直播APP开发实战项目IOS开发实战8天(最全最新)
最新仿映客直播APP开发实战项目IOS开发实战8天 第 1 章:直播准备 1: [录播] 课程大纲介绍 09:56 2: [录播] 了解直播技术和腾讯云直播 09:54 3: [录播] 基础封装 23 ...
- iOS完全自学手册——[三]Objective-C语言速成,利用Objective-C创建自己的对象...
1.前言 上一篇已经介绍了App Delegate.View Controller的基本概念,除此之外,分别利用storyboard和纯代码创建了第一个Xcode的工程,并对不同方式搭建项目进行了比较 ...
- iOS 项目开发工具JIRA
1. 项目管理体系平台 : JIRA 工作中为了有效管控项目开发进度与责任问题,引入了 jira 管理平台 目的: 任务明晰 与 责任人挂钩 方便管控进度 有利于bug的消除 各部门配合方便 使用注意 ...
- 第一个 iOS 项目开发小结 - SwiftUI 学习资料、开源项目
第一个 iOS 项目开发小结 SwiftUI 知识点小记 学习资料 开源项目 一些问题记录 项目预览 这段时间由于项目需要,我学习了一段时间 SwiftUI 并单独完成了一个系统的开发,耗时两个星期, ...
最新文章
- Py之matplotlibseaborn :高级图可视化之​​​​​​​Q-Q分位数图probplot、​​​​​​​boxplot箱线图、stripplot分类散点图案例应用及代码实现
- Matlab吸附等温线怎么拟合,吸附等温线线模型拟合
- 基于自定义Mybatis框架实现数据库操作
- echarts生成图表
- sql2005 reporting service,我总算找到一个完全程序化绑定报表(ado.net dataset 绑定reprot)的方案,谁能再给我些其他建议呢?...
- python功能二维表合并,一维表内嵌元祖合并以及取交集,并集,差集
- Flash mx 课程指导大纲
- twitter_关于Twitter和激进化的警告
- 物联网卡开启养老新模式
- 【SQL】练习题184道
- 陷入多事之秋,阿里的价值观出问题了?
- 2017清北学堂(提高组精英班)集训笔记——基础算法
- Linux自学笔记 | 10 常用命令 - 压缩解压类
- Andrews定理的证明(对称单峰多项式乘积保持对称单峰性)
- 大数据Spark学习笔记—未更完
- unity avatar 初探
- DaZeng:3分钟搞定内网渗透之外网访问指定域名
- 3•15,我可能遇到了假女神
- ssh 无密登录(两行命令即可)
- 超声波相关——抗干扰