摘要:
直接上代码,看ViewDidLoad方法中的注释。一共10个约束,UIScrollView 上下左右4个,其子试图contentView 上下左右宽高6个。 注意点:(以要求可以上下滚动为例,可以先看完代码再回头理解注意事项) 1、contentView的宽高根据需求设置优先级,哪边需要滚动,优先级 阅读全文
摘要:
https://www.yysweb.com/show/15-1627.html 个人账号不需要邓白氏编码 如果申请公司账号,下面是申请邓白氏编码教程 https://blog.csdn.net/qq_38371514/article/details/126744203 注册账号后,需要实名认证,不 阅读全文
摘要:
起初,对接的友盟分享到微信好友,出现bug,app——跳到微信——跳回app,无法进行分享 后来,去掉友盟,直接调用微信原生分享,出现bug,app——跳到微信——跳回app——跳到微信,能分享但是有二次跳转bug。 查找资料,调用微信通用链接自检函数 WXApi.checkUniversalLin 阅读全文
摘要:
1.tableview必须设置预估行高和自动计算高度 // 自动计算行高 tableView.rowHeight = UITableView.automaticDimension // 设置预估行高, 必须要写, 否则打印垃圾log日志, 提示约束冲突 tableView.estimatedRowH 阅读全文
摘要:
之前的获得状态栏高度代码是 func kStatusBarHeight() -> CGFloat { var statusBarHeight: CGFloat = 0 if #available(iOS 13.0, *) { let statusManager = UIApplication.sha 阅读全文
摘要:
Reactor 优点:就是将业务逻辑从View中抽离出来,可以让我们代码分工变的更加清晰明朗,多人开发时也便于后期的管理和维护。原理:由用户行为转为页面状态。 缺点:学习成本高;多写很多代码; ReactorKit是一个面向响应式单向 Swift 应用程序架构的框架。在 ReactorKit 框架中 阅读全文
摘要:
var和let、变量常量 final、修饰的类变量函数不能继承和重写,修饰的函数为直接派发 struct和enum和class、结构体和枚举为值类型,类为引用类型 override、重写 deinit、反初始化函数 mutating、结构体和枚举里,函数里修改外部变量时需要这个关键字修饰函数 laz 阅读全文
摘要:
在Swift中,class依然可以使用关联对象默认情况,extension不可以增加存储属性借助关联对象,可以实现类似extension为class增加存储属性的效果 class Person {} extension Person { private static var AGE_KEY: Voi 阅读全文
摘要:
1、weak也是我们OC中的一种解决循环引用的方式,在Swift中使用weak修饰的实例变量默认为可选类型,所以在使用weak后p对象会成为可选类型,在使用的时候需要使用?或者! func test() { var p = Person() p.myClourse = { [weak p] in p 阅读全文
摘要:
@optional 和 @required 是 Objective-C 中特有的关键字。 Swift中,默认所有方法在协议中都是必须实现的。而且,协议里方法不可以直接定义 optional。先给出两种解决方案: 在协议和方法前都加上 @objc 关键字,然后再在方法前加上 optional 关键字。 阅读全文