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")

}

最新文章

  1. Font Awesome图标库
  2. Java对象表示方式1:序列化、反序列化和transient关键字的作用
  3. static小结
  4. php一些特殊函数的使用实例详解
  5. Objective-c中 isEqual ,isEqualToString , == 三者的区别
  6. Objective-c复制对象的概念
  7. ubuntu安装StarDict星际译王
  8. centos Linux 统计某个文件夹占用空间大小
  9. jQuery/CSS3大屏下拉菜单 自定义子菜单内容
  10. java Script 中的keyCode 和charCode
  11. ocean所用的蝴蝶纹理
  12. 一次断电后docker问题的排解
  13. CenoOS 7环境下编译OpenJDK8
  14. Rational AppScan 标准版可扩展性和二次开发能力简介
  15. linux服务器查看项目日志命令
  16. 三、K3 Cloud 开发插件《K3 Cloud插件开发新手指导 + K3 Cloud插件开发代码调试》
  17. LightOJ 1030 Discovering Gold(概率DP)题解
  18. 【C】C语言中的_exit()与exit()
  19. Delphi中快速修改变量名称
  20. HTTP响应状态码

热门文章

  1. selenium八种定位元素方法
  2. ClassLoader源码分析与实例剖析
  3. 07—mybatis注解配置一
  4. zprepass 之后再base pass为什么用equal不用lessequal
  5. Xftp6 和 Xshell 6 下载与安装使用
  6. 基于VS2013的MFC窗体按钮事件触发案例(亲测可用)
  7. 自己编写一个Java监听器
  8. [Spring Boot] Set Context path for application in application.properties
  9. 【SQL-历史执行语句查询】 查询对数据库执行了哪些SQL
  10. 使用Future、asyncio处理并发