Swift编码总结3
1.编码转换:
dataString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? ""
requestData.stringValue.removingPercentEncoding ?? ""
2.取值需要判断为空设置为空,防止取值崩溃:
//总页数
let totalPageCount = dicData?["recordNum"] as? String
//菜品数据源
var dataSource = dicData?["orderInfo"] as? [Dictionary<String,Any>] ?? [Dictionary<String,Any>]()
3.可以在UIView里添加刷新,block传递到控制器操作网络请求即可:
//上拉加载
historyTableView.mj_footer = MJRefreshAutoNormalFooter(refreshingBlock : {[weak self]() -> Void in
self?.refreshBack?()
})
4.setNeedsLayout和layoutIfNeeded区别:
不能直接调用这个方法layoutSubviews。强制刷新布局,调用 setNeedsLayout,如果想马上刷新界面,调用layoutIfNeeded
setNeedsLayout
标记为需要重新布局,不立即刷新,但layoutSubviews一定会被调用
配合layoutIfNeeded立即更新
layoutIfNeeded
如果,有需要刷新的标记,立即调用layoutSubviews进行布局
一般写在UIView动画里。
https://yiweifen.com/html/news/WaiYu/74770.html
5.for循环推荐使用:
for (index,item) in potTaste.details.enumerated() { }
data.forEach { (label, model) in { }
6.枚举不同的type,设置不同的属性:
enum ButtonName {
case Split(String,UIColor,UIColor) //拆分
case Doubly(String,UIColor,UIColor) //倍增
case Delay(String,UIColor,UIColor) //延迟
case SureOrder(String,UIColor,UIColor) //确认下单
case Rush(String,UIColor,UIColor) //催菜
case Confirm(String,UIColor,UIColor) //确认上菜
case Gift(String,UIColor,UIColor) //赠菜
case GiveBack(String,UIColor,UIColor) //退菜
case ChangeTableDish //单品转台
}
7.Cell中接受多个model可以使用元组:
typealias ModelTuple = (dishLabel: DishLabel, dishViewModel: DishViewModel)
var model: ModelTuple!
8.CollectionView 大量 Item 快速滑动时掉帧严重问题的优化:
if #available(iOS 10.0, tvOS 10.0, *) {
collectionView?.prefetchDataSource = self
}
9.convert。。。to。。。:
// 将collectionView在控制器view的中心点转化成collectionView上的坐标
var topPoint = CGPoint(x: UIScreen.main.bounds.size.width*0.5, y: NavigationBarH)
var pInView = view.convert(topPoint, to: collectionView)
10.MJRefresh根据拖拽比例自动切换透明度:
let header = MJRefreshNormalHeader(refreshingTarget: self, refreshingAction: #selector(loadNew))
// 设置自动切换透明度(在导航栏下面自动隐藏)
header?.isAutomaticallyChangeAlpha = true;
Swift编码总结3的更多相关文章
- Swift— Swift编码规范之命名规范-备
程序代码中到处都是自己定义的名字,取一个有样并且符合规范的名字非常重要. 命名方法很多,但是比较有名的,广泛接受命名法有: 匈牙利命名,一般只是命名变量,原则是:变量名=类型前缀+描述,如bFoo表示 ...
- 《从零开始学Swift》学习笔记(Day 56)——命名规范Swift编码规范之命名规范
原创文章,欢迎转载.转载请注明:关东升的博客 程序代码中到处都是自己定义的名字,取一个有样并且符合规范的名字非常重要. 命名方法很多,但是比较有名的,广泛接受命名法有: 匈牙利命名,一般只是命名变量, ...
- 《从零開始学Swift》学习笔记(Day 56)—— Swift编码规范之命名规范
原创文章,欢迎转载.转载请注明:关东升的博客 程序代码中到处都是自定义的名字,取一个有样而且符合规范的名字非常重要. 命名方法非常多,可是比較有名的,广泛接受命名法有: 匈牙利命名,一般仅仅是命名变量 ...
- Swift之Swift编码规范
swift 支持的 markdown 语法. 1. 编码格式 1.1 使用二元运算符(+, -,==, 或->)的前后都需要添加空格 let value = + 1.2 在逗号后面加一个空格 l ...
- 《从零开始学Swift》学习笔记(Day 57)——Swift编码规范之注释规范:文件注释、文档注释、代码注释、使用地标注释
原创文章,欢迎转载.转载请注明:关东升的博客 前面说到Swift注释的语法有两种:单行注释(//)和多行注释(/*...*/).这里来介绍一下他们的使用规范. 1.文件注释 文件注释就在每一个文件开头 ...
- 《从零開始学Swift》学习笔记(Day 57)——Swift编码规范之凝视规范:文件凝视、文档凝视、代码凝视、使用地标凝视
原创文章.欢迎转载.转载请注明:关东升的博客 前面说到Swift凝视的语法有两种:单行凝视(//)和多行凝视(/*...*/).这里来介绍一下他们的使用规范. 1.文件凝视 文件凝视就在每个文件开头加 ...
- 一种swift编码风格指南(供参考,by linkedin)
http://www.cocoachina.com/swift/20160701/16894.html
- 《从零开始学Swift》学习笔记(Day 58)—— Swift编码规范之变量或常量声明规范
原创文章,欢迎转载.转载请注明:关东升的博客 声明是在声明变量.常量.属性.方法或函数和自定义类型时候需要遵守的规范. 首先变量或常量时每行声明变量或常量的数量推荐一行一个,因为这样以利于写注释.示例 ...
- [Swift]编码拾遗
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs ...
- Swift编码总结10
1.打开App显示文件已损坏,打不开,您应该将它移到废纸篓,怎么办? 终端输入执行:sudo spctl --master-disable 2.Mac的Siri打开网页控制台,进入开发中模式:不过我觉 ...
随机推荐
- Unity经典案例之:Fire Balls
版权声明: 本文原创发布于博客园"优梦创客"的博客空间(网址:http://www.cnblogs.com/raymondking123/)以及微信公众号"优梦创客&qu ...
- scrapy框架爬取智联招聘网站上深圳地区python岗位信息。
爬取字段,公司名称,职位名称,公司详情的链接,薪资待遇,要求的工作经验年限 1,items中定义爬取字段 import scrapy class ZhilianzhaopinItem(scrapy.I ...
- KClass与函数引用详解
继续学习Kotlin反射相关的东东. KClass: 在上一次是通过类来获取它的KClass对象: 那如果是一个对象呢?与这个对象对应的类的KClass对象又是如何获取的呢?像Java也是一样有相关机 ...
- python的readline() 和readlines()
.readline() 和 .readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样..readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python ...
- react编写规范之组件组件的内容编写顺序
static 开头的类属性,如 defaultProps.propTypes. 构造函数,constructor. getter/setter(还不了解的同学可以暂时忽略). 组件生命周期. _ 开头 ...
- window对象(全局对象)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- [ARIA] Add aria-expanded to add semantic value and styling
In this lesson, we will be going over the attribute aria-expanded. Instead of using a class like .op ...
- ML.NET 笔记
ROC曲线 ROC空间将偽陽性率(FPR)定義為 X 軸,真陽性率(TPR)定义为 Y 轴. TPR:在所有實際為陽性的樣本中,被正確地判斷為陽性之比率. FPR:在所有實際為阴性的样本中,被錯誤地判 ...
- 洛谷 P5146 最大差值 题解
P5146 最大差值 题目描述 HKE最近热衷于研究序列,有一次他发现了一个有趣的问题: 对于一个序列\(A_1,A_2\cdots A_n\),找出两个数\(i,j\),\(1\leq i< ...
- 洛谷P2744 量取牛奶
题目 DP或者迭代加深搜索,比较考验递归的搜索. 题目第一问可以用迭代加深搜索限制层数. 第二问需要满足字典序最小,所以我们可以在搜索的时候把比当前答案字典序大的情况剪枝掉. 然后考虑怎么搜索,对于每 ...