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打开网页控制台,进入开发中模式:不过我觉 ...
随机推荐
- Flooded! UVA - 815 (sort排序)
错了好多遍,不知道为啥出错,如果有大神发现,请求指点!!! 附错误代码(错的不知道怎么回事): #include<iostream> #include<cstdio> #inc ...
- Ubuntu创建启动器(快捷方式)的方式
解压.tar.gz的navicat之后发现不能自动生成启动器了,研究了一下发现: 虽然不少带有图形界面的程序会在安装时自动在桌面上创建快捷方式,还有一些图形界面程序或者命令行程序可能需要你手动创建快捷 ...
- destoon系统结构大全
自己整理的destoon系统结构目录,希望对开发者有些帮助! ( /代表的是目录 ├ 代表的是文件 ) /about关于我们页面 ├index.html关于我们 ├copyright.html版权隐 ...
- Vue移动端项目如何使用手机预览调试
- forword动作
forword动作 服务器内部跳转指令 语法为: <jsp:forword page = "目标页面"> 等同于:request.getRequestDispatc ...
- SpringMVC_原理(转)
在整个Spring MVC框架中,DispatcherServlet处于核心位置,它负责协调和组织不同组件完成请求处理并返回响应的工作.具体流程为:1)客户端发送http请求,web应用服务器接收到这 ...
- cifar-10数据集的可视化
import numpy as np from PIL import Image import pickle import os CHANNEL = 3 WIDTH = 32 HEIGHT = 32 ...
- AtCoder Beginner Contest 125 解题报告
那天晚上刚好有事就咕了. 最近的那一场E题还不会写.F题全场又只过了三个?留坑吧... A - Biscuit Generator #include <cstdio> using name ...
- Centos 7 命令行版虚拟机安装
使用VMware创建虚拟机 点击下一步 点击下一步 下一步 选择你要安装的虚拟机是哪种操作系统 选择虚拟机的安装位置 选择处理器 自定义内存 选择网络 下一步 下一步 下一步就可以 自定义磁盘容量 然 ...
- (a2b_hex)binascii.Error: Non-hexadecimal digit found
HEX_CHAR = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'] 错误:16进制字 ...