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打开网页控制台,进入开发中模式:不过我觉 ...
随机推荐
- HttpClient代码设置代理
由于对接faceBook接口,本地测试时候要设置代理才能调试. (http和https通用) public SSLContext createIgnoreVerifySSL() throws NoSu ...
- linux下载安装常用的配置,jdk,mysql,tomcat,redis
1.特别强调,本教程适合于VMware Workstation创建的虚拟机linux配置. 2.ssh---linux连接的工具 https://pan.baidu.com/s/1MGIr5WOkkH ...
- Python2.7 报错:UnicodeEncodeError: 'ascii' codec can't encode characters in position 3-4: ordinal not in range(128)
一. 错误原因(网上找的是这样说的,具体的我也不是很了解2.7版本的编码问题): 1.python默认使用ASCII处理字符流. 2.Unicode编码与ASCII编码的不兼容,Python脚本文件是 ...
- [HTML5] Native lazy-loading for the web
According to HTTPArchive, images are the most requested asset type for most websites and usually tak ...
- 学到了林海峰,武沛齐讲的Day49 django
django 终于等到啦,好东西上场了 blog---- 个体应用文件 model.py 数据库文件 views.py 视图文件 admin.py 后台文件,操纵数据库文件 manage.py --- ...
- BZOJ 5469: [FJOI2018]领导集团问题 dp+线段树合并
在 dp 问题中,如果发现可以用后缀最大值来进行转移的话可以考虑去查分这个后缀最大值. 这样的话可以用差分的方式来方便地进行维护 ~ #include <bits/stdc++.h> #d ...
- learning at command AT+CPIN
[Purpose] Learning how to check sim ready? [Eevironment] Shell terminal, base on gcom command and gc ...
- omnibus-gitlab 架构学习
omnibus-gitlab是gitlab 团队fork 自chef 的omnibus 项目,同时做了一些自定义的开发,omnibus-gitlab 简化了 gitlab 的部署以及维护,同时里边集成 ...
- CF #365 DIV2 D Mishka and Interesting sum 区间异或+线段树
D. Mishka and Interesting sum time limit per test 3.5 seconds memory limit per test 256 megabytes in ...
- P4279 【[SHOI2008]小约翰的游戏】
我怎么什么都不会啊\(QAQ\)博弈论怎么和期望一样玄学啊\(QAQ\) 我们分几种情况讨论: \(Case1\):只有一堆且为1,那么后手胜利 \(Case2\):每一堆都是1,那么只需要判断奇偶性 ...