遗留问题
类似于微博刷新过后,新消息条数提醒 ?
🔗参考链接:
https://blog.csdn.net/tongwei117/article/details/52108243产品详情
2.1 使 scrollView的内容高度 = tableView的Height
2.1.1 更改 tableView的height
2.1.2 改变 scrollView的ContentSize
xcode问题 :
option + command + [ / ] 上移/下移 某一行代码
command + [ / ] 缩进代码报错Class '' has no initializers
解决:
类中的某个属性,需要初始化,或者设置为可选 "?"
Swift语法
- 回顾自定义view的封装和xib文件的使用详情
https://www.cnblogs.com/xiaoyouPrince/p/6499133.html?utm_source=tuicool&utm_medium=referral
不建议ScrollView和TableView放在一起同一个方向使用
解决方案: 不同cell可以解决
UITabbarButtonItem 再次点击刷新功能
- 监听tabbar的重复点击 刷新tableView数据
思路 : 在设置tabbarItem的方法里面, 1. 创建一个属性,用于记录第一次点击的按钮是哪一个;
- 监听tabbarItem点击事件内,赋值这个属性 , 判断是否相等 .
- 做相应的事情
缓存数据的简单粗暴的方法:
https://www.jianshu.com/p/81863bc87b43
数据缓存 :
https://www.cnblogs.com/wendingding/p/3950198.html
iOS内存泄漏 :
https://www.jianshu.com/p/10254b4b19f3
iOS界面下拉选项:
一个第三方控件: SHESelectTable
实现: 点击按钮, 列出下拉选项 点击选项设置按钮文字
CFM 发布产品 界面 -> 点击add按钮添加产品图片 ->
- 给按钮添加监听 target
- 创建 按钮属性,关联该按钮
- 选择照片完成 ->代理方法内
- 设置 setBackgroundImage
- 完成
Swift 中使用static的作用 :
- 只能在类内部声明和访问 , 其他类不可访问 .
就是说 -> selfClass.staticValiable otherClass.static 不行 🙅
- 变量默认为懒加载 , 就是在使用的时候才会赋值 .
- 运行时自动添加dispatch_once函数, 使其只能够自信一次初始化.
更改选中时cell的背景色
https://blog.csdn.net/a6472953/article/details/7532212
产品列表 字体修改
https://www.jianshu.com/p/698e7ccf0c52
发布求购
上传图片
multipartFormData.append(imageBase64!, withName: "banner_1", mimeType: "text/plain")
其他参数
multipartFormData.append(data, withName: key)
上传代码
// 图片转换成data
let imgData = UIImageJPEGRepresentation(img, 0.5)
// 转换图片为BASE64的data
let imageBase64 = imgData?.base64EncodedData()
let parameters = ["token":Ktoken!,
"user_id":KuserID!,
"type_id":category,
"name":name,
"unit":unit,
"life":life,
"price":price,
"num":num,
"color":color,
"width":width,
"length":length,
"handle":handle,
"content":content] as [String : Any]
Alamofire.upload(multipartFormData: { (multipartFormData) in
// 图片
multipartFormData.append(imageBase64!, withName: "banner_1", mimeType: "text/plain")
// 其他参数
for (key,value) in parameters {
assert(value is String, "参数必须能转换成NSData类型,比如string")
let data = (value as! String).data(using: String.Encoding(rawValue: String.Encoding.utf8.rawValue))!
multipartFormData.append(data, withName: key)
}
}, to: url) { (formatResult) in
switch formatResult {
case .success(request: let upload ,_,_):
// 上传成功
upload.responseJSON(completionHandler: { (response) in
guard response.result.isSuccess else { return}
if let value = response.result.value {
let json = JSON(value)
completionHandle(json)
}
})
case.failure(let error ):
print("上传错误: \(error)")
}
}
上传成功json数据
{
"state" : 1,
"msg" : "success"
}
2018-05-24
searchBar 光标没有出现
解决:
searchBar.tintColor = KBGColor -> 设置这个,光标出现
搜索框searchBar介绍
http://www.cocoachina.com/ios/20171122/21266.html
Swift结构体
- Swift语言非常重视结构体 , 把结构体作为作为实现面向对象的重要手段 .
- Swift中的结构体不仅可以定义成员变量(属性) , 还可以定义成员方法 .
- 可以把结构体看做一种轻量级别的类.
Swift类
(和结构体的区别)
- 和结构体非常相似 , 都具有(定义和使用 ) 属性 方法 下标 和构造器等面向对象特征;
- 但是结构体不具有继承性
- 不具备(运行时)强制类型转换 \ 使用析构器和使用引用等能力.
对象 :
- 什么才能称得上对象 ?
概览: 只有类实例化的"实例"才能称得上是"对象"
注意: 不仅仅是结构体和类可以实例化,枚举、函数类型和闭包开辟内存空间的过程也可以称为实例化,结果也可以叫“实例”,但不能叫“对象”。
- 数据类型 (值类型/引用类型)
注意: 数据类型可以分为:值类型和引用类型,(这是由赋值或参数传递方式决定的)。
只有类是"引用类型",其他类型全部是值类型。 即便结构体与类非常相似,它也是值类型。值类型还包括整型、浮点型、布尔型、字符串、元组、集合和枚举。
Swift中 class func 与 static func 的区别
解: 其实在Swift中static func 相当于class final func。禁止这个方法被重写。