Giter VIP home page Giter VIP logo

capstone's People

Contributors

wddcat avatar

Stargazers

 avatar

Watchers

 avatar  avatar

capstone's Issues

完成用户管理模块

  • 首页&轮播图
  • 搜索页
  • 搜索结果与收藏列表区分显示
  • 登录&注册&注销
  • 用户信息修改

完成融资报告模块

【20200302】

  • 完成融报首页的内容
  • 完成公司基本情况
  • 完成股东背景
  • 完成历史沿革
  • 完成高管信息
  • 完成生产经营情况
  • 完成财务情况
  • 完成融资情况

完成搜索公司模块

【20200226】今日任务:开始工程实现部分功能

  • 搜索框输入,并获取输入的值,将其传入服务器中获取返回的公司数据
  • 以列表的方式显示公司的名称及信息
  • 为缓解数据负担,采用每次获取10个数据的方法,当下拉到底部时刷新新的10个数据
  • 能够在搜索结果列表中对公司进行收藏和取消收藏

记录拆分MC两个模块过程与方法

首先需要建立一个contract.swift文件作为接口文件,其中需要声明view层和model层中提供的函数,这里使用swift中提供的protocol去定义

`protocol SearchCompanyView {
func refreshCompanyList()
}

protocol SearchCompanyPresenter {
func getPerPageInfo(keyword: String, limit:Int, page: Int)
}`

然后分别在Model和Controller文件中遵守对应的约定,并实现方法。由于Controller和Presenter两个类有所不同,所以如果需要互相调用接口中提供的函数,需要使用不同的方法去实例化互相的类。

在Model.swift文件中:

`class SearchCompanyModel: SearchCompanyPresenter {

var mView:SearchCompanyView? //这里使用的是接口文件中protocol的名称,使用?来取消class需要的init函数

func getPerPageInfo(keyword: String, limit:Int, page: Int){
    ...
   self.mView?.refreshCompanyList() //这里的对象也要使用?
}

}`

在Controller.swift文件中:

`class SearchCompanyController: UITableViewController, UISearchBarDelegate {

var mPresenter = SearchCompanyModel()

override func viewDidLoad() {
    super.viewDidLoad()
    mPresenter.mView = self //这里确定了mView的?

    mPresenter.getPerPageInfo(keyword: searchBar.text!, limit:10, page: page) //调用方法
}

}`

extension SearchCompanyController: SearchCompanyView { //使用extension简化class主体 func refreshCompanyList() { self.tableView.reloadData() } }

记录ScrollView的使用方法

  1. 在rootView中添加一个UIScrollView
  2. 把ScrollView调整好大小
  3. 设置ScrollView的constraint附着在safe area上
  4. 在ScrollView中添加一个View
  5. 将View拉满充满ScrollView
  6. 将View的左上两条边添加constraint到Content Layout Guide,右下两条边添加constraint到Frame Layout Guide
  7. 在View中布局,设置的约束全部依靠至View(即super View)上
  8. 在Controller代码中复写viewWillAppear
    override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.baseScrollView.contentSize = CGSize(width: self.view.frame.size.width, height: self.view.frame.size.height + 50) }
    具体添加的数值试底部内边距而定

残留问题

列出一些在开发过程中不是很重要但还未解决的问题

界面

  • 搜索结果界面中有个SearchBar无法置顶

  • 融报首页中融资情况概述最后一句话的数据应先进行数据结构的排序后再显示

  • 滑动表格和动态表格的分割线颜色无法设置
    近期发现了其spacing属性设置出的间隔线为透明色,可尝试在其下层设置一个纯色View

  • 财务情况的表格表头显示的日期格式应为xxxx年xx月

  • 财务情况表格的行业平均值向下取整了,不能取到小数点后

  • 完成了融资报告详情的内容,但未对无集团企业适配情况进行测试

  • 搜索界面只能通过按搜索按钮跳转

  • 完善信息界面需添加金融机构检索


数据

  • 登录成功过后可以获取到个人数据等信息,但退出程序再进就会显示登录失败

  • 无法注销,显示请求失败

  • 账号注销后依然可以登录

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.