项目总结

来源:互联网 发布:5g网络wifi什么意思 编辑:程序博客网 时间:2024/04/26 11:57

项目总结

目录结构

使用MVC设计目录结构,见下图:

picture

技术概要

我理解的MVC设计模式

在项目中,使用MVC,实现数据和逻辑的分离:在Controller中请求数据,把数据存储在model里,再根据需求在view中提取model中的数据进行展示。

疑问:展示数据的时候一般是通过控制器的view来展示的,比如tableView或者collectionView,虽然cell分离了,但是本身的view…好像明白了,本身view负责风格样式以及承载cell,具体数据展示是通过cell来完成的,控制器本身的view不能分离而且没有意义

数据展示及传递

在使用tableView展示数据的时候继承UITableViewController作为tableView的代理,这么做只是为了让控制器不会显得很臃肿;在登录和注册中的传值使用了通知中心,在一对多传值中使用它很合理,用代理也能实现,但是这时候通知中心似乎更专业。

界面展示的一些事

项目初期开始是几乎所有界面都是用XIB完成布局的,但是后来进行屏幕适配的时候出现各种不协调,本是为了方便,谁想更不方便了,虽然主要原因在我没学好T_T,后来无奈改为纯手写代码,当然cell这么简单的约束还是会的,所以自定义cell还是用的XIB。虽然是代码布局,但用frame做适配也并没有增加很多代码,下个项目打算使用第三方库Masonry。

遇到的问题及其解决方法

滑动scrollView中的viewController偏移量不对

问题描述

scrollView上加载5个viewController,scrollView的contentOffset设置为self.view.bounds.size.width,其他设置也正确,左右滑动时偏移量不正确,不能显示完整的界面

解决方法

打印contentOffset和self.view.bounds.size.width,发现都为320,通过查找资料知道是XIB的原因,可以有两种解决:一是不使用XIB布局,二是将self.view.bounds.size.width改为[UIScreen mainScreen].bounds.size.width;

上拉刷新没有数据返回时程序崩溃

问题描述

上拉刷新有数据返回时没有异常,当返回数据为空时程序崩溃

解决方法

打印返回的数据,发现返回相关的url为<\null>(请忽略),与直接返回null不同的是,判断其为空时要使用[NSNull null],而后者直接用nil即可。因为url的值为nil,导致请求数据的时候会崩溃,所以需要对他进行容错处理。

给子视图添加手势,点击后手势不响应

问题描述

有两个imageView,其中一个为背景,给子视图添加手势,点击后手势不响应

解决方法

当子视图的手势设置全部正确设置后,将背景即父视图的手势用户交互设置为YES,原因是子视图的手势点击事件需要向下传递,如果父视图没有打开交互,则事件传递被拦截,导致无法响应的问题

如有需要,后续补充

0 0