TodayNews

151 阅读3分钟

运行老项目

杨蒙老师的课程

杨蒙老师简书

image.png

The targets “NewsTests” and “NewsUITests” contains source code developed with Swift 3.x. This version of Xcode does not support building or migrating Swift 3.x targets.
Use Xcode 10.1 to migrate the code to Swift 4.

目前版本

image.png

Swift Compiler - Language 选择一个高版本吧

image.png

pod 保持最新哦

image.png

错误过多

image.png

命名过旧

image.png

UIApplicationLaunchOptionsKey=>UIApplication.LaunchOptionsKey

childViewControllers => children

addChildViewController => addChild

calculateDiskCacheSize => calculateDiskStorageSize 切闭包返回的是一个枚举哦  size 是 Result<Success, Failure>

方法过旧

sectionInset = UIEdgeInsetsMake(0, 0, 0, 0)
修复
sectionInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)

与系统命名重复

image.png

Alamofire 的请求request 不存在

富文本

NSAttributedStringKey ->

MJ

if ((tableView.mj_footer?.isRefreshing) != nil)

if ((self!.tableView.mj_footer?.isRefreshing) != nil)

if tableView.mj_footer?.isRefreshing != nil

self!.collectionView.mj_footer?.isRefreshing != nil

网络 修改

Alamofire.request s

图片

ImageDownloader.default.downloadImage(with: URL(string: image.url)!, options: nil) { receivedSize, totalSize in

                // 获取当前进度

                let progress = Float(receivedSize) / Float(totalSize)

                SVProgressHUD.showProgress(progress)

            } completionHandler: { result in

                switch result {

                case let .success(imageResult):

                    // 调用系统相册,保存到相册

                    PHPhotoLibrary.shared().performChanges({

                        PHAssetChangeRequest.creationRequestForAsset(from: imageResult.image)

                    }, completionHandler: { (success, error) in

                        SVProgressHUD.dismiss()

                        if success { SVProgressHUD.showSuccess(withStatus: "保存成功!") }

                    })

                    break

                default: break

                }

                

            }

搭建 项目

tabbar渲染蓝色问题

image.png tabbaritem的 蓝色字体 tintColor

MyTabBarController 管理4个导航控制器

kvc 设置 tabBar

编写 MyTabBar 添加按钮 调整 4个tabbarbutton位置

我的个人中心

MineViewController

修改 MineViewController 为 UITableViewController

添加Const 宏文件

添加UIColor分类

UIColor+Extension Convenience 便利构造器 然后用一个 iOS10方法 displayP3Red 方法

image.png

创建Tool 网络请求

从协议出发

比如加载xib

image.png

struct 和 class 区别

image.png

NetworkTool

定义协议 、 扩展

image.png

添加Alamofire框架

SwiftJson是 json解析

HandyJSON json解析 json转模型

pod update --no-repo-update 不会解析依赖 直接下载

http 请求是添加AppTrnsport 你懂的

Model层结构体的变量可以声明可选 也可以给默认值

image.png

image.png

image.png

image.png

image.png

编写 MyOtherCell 、MyFirstSectionCell

竟然是xib 卧槽 我还是纯代码吧

as! as? 明天研究一波 是不是类型转换呢?

image.png

添加扩展 UIView+Extension、UITableView+Extension

写 RegisterCellOrNib 扩展

替换掉 记得cell要遵守协议

image.png

image.png

302-自定义我的关注cell 要加个借口

主题 SwiftTheme

appdelegate 初始化加载 创建MyTheme 控制

通知、user default

控制器销毁 deinit

tababr不会销毁的 但是还是移除吧

image.png

登陆界面

MoreLoginViewController

IBAnimate

image.png

登陆界面还是拖拽的 但是我还是用纯代码吧

添加RxSwift RxCocoa

添加 moreLoginButton

image.png

image.png

image.png

rxd的闭包中加weak 老师都说自己研究不深就那么写吧

登陆界面的 主题设置 感觉真浪费时间 我就简单听听吧

image.png

拖线 点击事件

image.png

设置界面 403 数据从plist文件获取

image.png

image.png

跳转 设置界面 在MineViewController

image.png

plist文件

image.png

  • 新建SettingModel
  • 加载plist文件 数组加载 as! 【any】

加载plist重点 强制转换类型 as运用 和 HandyJSON

image.png

重点来了 didSet 给cell 赋值

image.png

setting!.name 强制解包因为有底气 因为数据确实有 哈哈

fileprivate 修饰 setupUI

获取缓存

size 按字节算的 所以要处理一下 是个闭包 发通知 这块如果是数据绑定 估计就牛逼了

事件 @objc

image.png

设置字体大小

就是改个字 没做处理应该

flatmap

image.png

设置里面其实没啥知识点 就是获取plist 然后通知 知识点

自定义导航控制器 MyNavigationController 修改返回按钮

image.png

viewControllers.cout > 0 要不要tabbar

添加 lefttabbaritem

设置主题色哦

离线下载界面 501

image.png

OfflineDownloadController

直接跳过 601 用户详情

用户详情

image.png

image.png

创建代理协议 用于跳转

image.png

image.png

UserDetailViewController