Swift小知识点总结
1>判断输入字符串位数:
if phoneTextField.text?.lengthOfBytes(using: .utf8) != 11 {
self.showHint(hint: "请输入11位手机号码")
return
}
2>跳转设置WIfi页面:
/// 设置WIFi
fileprivate func setUpWiFi() {
guard let url = URL(string: "app-Prefs:root=WIFI") else {
return
}
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.openURL(url)
}
}
3>
// MARK: - Date的扩展
/**
时间戳转化为字符串
time:时间戳字符串
*/
func timeStamp(timeStr: Double) -> String {
// let time = Double(timeStr)! + 28800 //因为时差问题要加8小时 == 28800 sec
// let time: TimeInterval = 1000
let detaildate = Date(timeIntervalSince1970: timeStr/1000.0)
//实例化一个NSDateFormatter对象
let dateFormatter = DateFormatter()
//设定时间格式,这里可以设置成自己需要的格式
dateFormatter.dateFormat = "yyyy-MM-dd HH:MM:ss"
let currentDateStr = dateFormatter.string(from: detaildate)
return currentDateStr
}
4>避免循环引用:
weak var weakSelf = self
let strongSelf = weakSelf
5>
类方法调用函数可以使用calss和static定义函数.
6>
Debug输出打印:
deinit {
debugPrint("SearchViewController--deinit")
}
7>修改搜索框的属性:
for view in searchBar.subviews {
for subView in view.subviews {
if NSStringFromClass(subView.classForCoder) == "UINavigationButton" {
let btn = subView as? UIButton
btn?.setTitle("取消" , for: .normal)
}
if NSStringFromClass(subView.classForCoder) == "UISearchBarTextField" {
let textField = subView as? UITextField
textField?.tintColor = UIColor.gray
}
}
}
8>去除字符串左右空格:
//去除搜索字符串左右和中间的空格
searchBar.text = searchBar.text!.trimmingCharacters(in: CharacterSet.whitespaces)
9>爱心动画:
@IBAction func like(_ sender: UIButton) {
//爱心大小
let heart = DMHeartFlyView(frame: CGRect(x: 0, y: 0, width: 40, height: 40))
//爱心的中心位置
heart.center = CGPoint(x: likeBtn.frame.origin.x, y: likeBtn.frame.origin.y)
view.addSubview(heart)
heart.animate(in: view)
//爱心按钮的 大小变化动画
let btnAnime = CAKeyframeAnimation(keyPath: "transform.scale")
btnAnime.values = [1.0, 0.7, 0.5, 0.3, 0.5, 0.7, 1.0, 1.2, 1.4, 1.2, 1.0]
btnAnime.keyTimes = [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]
btnAnime.duration = 0.2
sender.layer.add(btnAnime, forKey: "SHOW")
}
Swift小知识点总结的更多相关文章
- Swift基础知识点的学习
每一个程序员都有一颗不满足当下知识的学习,学习Swift更是每一个iOS程序员必学技能!!! 一说道基础点的学习,当然涵盖的方面也是很多很多啦....然而每一个小知识点的学习,写一个博客,我也觉得没什 ...
- 刚接触Linux,菜鸟必备的小知识点(一)
身为一个将要大四的学生,而且还是学计算机的没有接触过linux简直是羞愧难当.这个假期做了一个软件测试员,必须要熟悉linux的操作,所以对于我这个菜鸟我也就说几点比较重要的小知识点吧. 第一.cd指 ...
- Java学习过程中的总结的小知识点(长期更新)
Java学习过程中的总结的小知识点 (主要是自己不会的知识和容易搞错的东西) 计算某个程序运行的时间 long stime=System.currentTimeMillis(); copy3(file ...
- 【转】HTML5的小知识点小集合
html5的小知识点小集合 html5知识 1. Doctype作用?标准模式与兼容模式各有什么区别? (1).<!DOCTYPE>声明位于位于HTML文档中的第一行,处于<h ...
- AngularJS的小知识点
小知识点:$scope和$rootScope (1)每次使用ngController指令,都会调用控制器的创建函数,创建出一个控制器对象. (2)每次创建一个控制器对象,AngularJS都会创建一个 ...
- js中关于value的一个小知识点(value既是属性也是变量)
今天在学习input的value值时,发现这么一个小知识点,以前理解不太透彻. [1]以下这种情况是常见情况,会弹出“测试内容” <input type="button" v ...
- html5的小知识点小集合
html5的小知识点小集合 html5知识 1. Doctype作用?标准模式与兼容模式各有什么区别? (1).<!DOCTYPE>声明位于位于HTML文档中的第一行,处于< ...
- [BS] 小知识点总结-05
[BS] 小知识点总结-05 1. 不论UIWindow的rootViewController是navC.tabBarC还是VC,也不管modalVC和rootVC中间隔着多少个VC,但是modal出 ...
- 一个关于echo的小知识点
一个关于echo的小知识点 echo一个布尔值时,如果是true,输出1,而如果是false,将什么都不输出! 网上搜的一个解释: 对于数字类型来说,false 确实 是 0, 而对strin ...
随机推荐
- FFmpeg常用命令学习笔记(五)裁剪与合并命令
裁剪与合并命令 1.音视频裁剪 ffmpeg -i input.mp4 -ss 00:01:00 -t 10 out.mp4 -ss:起始时间(HH:MM:SS).-t:裁剪时长(秒) 2.视频合并 ...
- Semantic 导航条
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- sed 和awk的执行方式
sed 测试案例: 在有cat的行末开始追加<---,直到有dog的行结束 [root@L shells]# cat catDog.txt snake snake pig bird dog ca ...
- java学习第一天:环境的配置
1.下载JDK,当前版本下载地址为:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.htm ...
- HDU 1512 Monkey King(左偏堆)
爱争吵的猴子 ★★☆ 输入文件:monkeyk.in 输出文件:monkeyk.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] 在一个森林里,住着N只好斗的猴子.开始,他们各 ...
- 无法连接虚拟设备 ide1:0及上不网
无法连接虚拟设备 ide1:0 问题: 启动vmware之后,发现出现无法连接 ide 1:0. 网络查找之后,发现是之前挂载的iso镜像找不到了. 原因: 我把iso镜像放到其他位置. 解决: 指定 ...
- 【java设计模式】-04单例模式
单例模式 定义: 确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 类型: 创建类模式 类图: 单例模式特点 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯一实例. 3.单 ...
- Leetcode题目98.验证二叉搜索树(递归-中等)
题目描述: 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数.节点的右子树只包含大于当前节点的数.所有左子树和右子树自身必须也是 ...
- H5-Mui框架——修改mui.confirm样式
问题简述: 使用mui框架默认提示框时,感觉与整体布局不符,因此想要更改其中的样式. 首先,查了一下资料:mui.toast样式风格及位置修改教程 以下是转载过来的文章内容. ============ ...
- OUC_Summer Training_ DIV2_#11 722
企鹅很忙系列~(可惜只会做3道题T_T) A - A Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d &am ...